ایجاد لاگ در آدرس دلخواه

برای ایجاد لاگ در یک دایرکتوری و فایل دلخواه آدرس و نام فایل را به کلاس لاگ می دهیم :

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.json شبیه به این خواهد بود :

{
    "name": "laravelcode/jdate",
    "description": "Demo-package ",
    "authors": [
        {
            "name": "Laravel Code",
            "email": "info@laravelcode.ir"
        }
    ],
    "minimum-stability": "dev",
    "require": {}
}

حالا به شاخه اصلی (root) بر می گردیم و فایل composer.json اصلی لاراول را ویرایش می کنیم و آدرس پیکج جدید را در قسمت psr-4 وارد می کنیم.

    "autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/",
            "Laravelcode\\Jdate\\": "packages/laravelcode/jdate/src"
        }
    },

سپس در همان شاخه اصلی در خط فرمان دستور زیر را اجرا می کنیم :

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();
    }

برای جزئیات بیشتر به مستندات لاراول مراجعه کنید:
https://laravel.com/docs/master/providers

ایجاد لاگ

برای ایجاد لاگ در لاراول می توانیم از کلاس log استفاده کنیم :

use Illuminate\Support\Facades\Log;

Log::emergency($message);
Log::alert($message);
Log::critical($message);
Log::error($message);
Log::warning($message);
Log::notice($message);
Log::info($message);
Log::debug($message);

حذف یک migration

برای حذف یک migration به صورت دستی مراحل زیر را انجام می دهیم :

  • حذف فایل migration بری ای مثال : app/database/migrations/my_migration_file_name.php
  • ریست کردن composer autoload با دستور : composer dump-autoload
  • تمام

همچنین می توانید رکورد ایجاد شده در جدول migrations را در دیتابیس حذف کنید.

اضافه کردن یک فیلد به جدول

برای اضافه کردن یک فیلد جدید به جدول های موجود ابتدا با دستور زیر در محیط کامند لاین یک migration جدید ایجاد می کنیم :

php artisan make:migration add_paid_to_users

سپس فایل ایجاد شده در آدرس  app/database/migration را باز می کنیم و فیلد های جدید را در بخش  up تعریف می کنیم :

public function up()
{
    Schema::table('users', function($table) {
        $table->integer('paid');
    });
}

سپس قسمت down را هم تکمیل می کنیم :

public function down()
{
    Schema::table('users', function($table) {
        $table->dropColumn('paid');
    });
}

در نهایت فایل را ذخیره می کنیم و دستور migrate را در ترمینال وارد می کنیم :

php artisan migrate