برای ایجاد لاگ در یک دایرکتوری و فایل دلخواه آدرس و نام فایل را به کلاس لاگ می دهیم :
use Illuminate\Support\Facades\Log;
class SampleController extends Controller
{
public function testFunc(Request $request){
// log something to storage/logs/laravelcode.log
Log::useDailyFiles(storage_path().'/logs/laravelcode.log');
Log::info(['Request'=>$request]);
}
}
برای ساخت package لاراول ابتدا فولدر پکیج packages/ را در شخه اصلی (root) لاراول ایجاد می کنیم.
هر پکیج از نام سازنده و نام پکیج تشکیل می شود و باید بر همین مبنا فولدر هایی را در داخل فولدر /packages/ ایجاد کنیم که فولدر اول نام سازنده یا توسعه دهنده است برای مثال laravelcode و فولدر داخل laravelcode هم با نام پکیج ساخته می شود برای مثال jdate که در نهایت چنین دایرکتوری را خواهیم داشت /packages/laravelcode/jdate/
حالا داخل داکیتوری آخر یک فولدر با نام src ایجاد می کنیم : /packages/laravelcode/jdate/src/
برای تمام پکیج ها برای معرفی وابستگی ها () نیاز به ایجاد فایل composer.json داریم و برای این کار داخل فولدر jdate دستور زیر را اجرا می کنیم و سپس اطلاعات لازم را در معرفی پکیج در خط فرمان وارد می کنیم :
composer init
همچنین شما می توانید خودتان بدون استفاده از کامپوزر این فایل را به صورت دستی ایجاد کنید.
سپس در همان شاخه اصلی در خط فرمان دستور زیر را اجرا می کنیم :
composer dump-autoload
حالا باید کلاس پروایدر را بسازیم و برای این منظور می توانیم از دستورات astisan در خط فرمان استفاده کنیم :
php artisan make:provider JdateServiceProvider
با اجرای این دستور یک فایل با نام JdateServiceProvider.php در شاخه app/Providers ایجاد می شود که باید آن را به شاخه /packages/laravelcode/jdate/src/ منتقل کنیم.
حالا فایل config/app.php را ویرایش می کنیم و پکیج را در آرایه providers معرفی میکنیم:
'providers' => [
/*
* Laravel Framework Service Providers...
*/
Illuminate\Foundation\Providers\ArtisanServiceProvider::class,
// ... other providers
Illuminate\View\ViewServiceProvider::class,
Laravelcode\Jdate\JdateServiceProvider::class,
کار تمام است و برای استفاده از این پکیج کافی است با استفاده از namespace که تغریف کرده ایم آن را صدا بزنیم، برای مثال در کنترولر می توانیم به شکل زیر عمل کنیم :
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Laravelcode\Jdate\Jdate;
class TestController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$Jdate = new Jdate();
}