Tìm hiểu Laravel Zero



  • Laravel Zero là một framework php cung cấp giải pháp phát triển console application được phát triển bởi Nuno Maduro. Nó là một phiên bản không chính thức và được tùy chỉnh của Laravel để tối ưu hóa cho ứng dụng dòng lệnh.

    Một số điểm nổi bật của Laravel Zero:

    • Được xây dựng dựa trên các Laravel Component
    • Tùy chỉnh cài đặt Laravel Eloquent, Laravel Logging và nhiều thứ khác
    • Hỗ trợ desktop notification trên Linux, Windows và MacOS
    • Hoạt động với Scheduler

    Yêu cầu và cài đặt

    Yêu cầu: PHP 7.1.3+
    

    Tạo mới project với Composer:

    composer create-project --prefer-dist laravel-zero/laravel-zero <your-app-name>
    

    Khởi chạy ứng dụng, chạy câu lệnh sau tại thư mục gốc của ứng dụng:

    php <your-app-name>
    

    Bạn có thể thay đổi tên cùa ứng dụng

    php <your-app-name> app:rename <new-name>
    

    App\Commands

    Tạo mới command

    php <your-app-name> make:command <NewCommand>
    

    Liên quan đến nội dung của file command:

     protected $signature = 'user:create
                          {name : The name of the user} // required
                          {--age= : The age of the user}'; // optional.
    
    • Các lệnh Input/Output: Các bạn có thể tham khảo ở đây https://laravel.com/docs/5.6/artisan#command-io để hiểu thêm về yêu cầu của các input và các lệnh bằng cách sừ dụng line, info, comment, question và error method.
    1. Desktop notifications

      $this->notify("Hello Web Artisan", "Love beautiful..", "icon.png");
      
    2. Tasks

      $this->task("Installing Laravel", function () {
      	return true;
      });
      
      $this->task("Doing something else", function () {
      	return false;
      });
      
    3. Menu tương tác (Interactive Menus)

      $option = $this->menu('Pizza menu', [
      	'Freshly baked muffins',
      	'Freshly baked croissants',
      	'Turnovers, crumb cake, cinnamon buns, scones',
      ])->open();
      
      $this->info("You have chosen the option number #$option");
      

      Bạn có thể tùy chỉnh giao diện của menu:

      $this->menu($title, $options)
      	->setForegroundColour('green')
      	->setBackgroundColour('black')
      	->setWidth(200)
      	->setPadding(10)
      	->setMargin(5)
      	->setExitButtonText("Abort")
      	// remove exit button with 
      	// ->disableDefaultItems()
      	->setUnselectedMarker('❅')
      	->setSelectedMarker('✏')
      	->setTitleSeparator('*-')
      	->addLineBreak('<3', 2)
      	->addStaticItem('AREA 2')
      	->open();
      

    App\ServiceProviders

    Laravel Zero khuyến khích sử dụng Laravel Service Providers cho việc định nghĩa các triển khai cụ thể, Chúng được khai báo tại app\Providers\AppServiceProvider.php hoặc khởi tạo mới 1 service provider.

        public function register()
        {
            $this->app->singleton(Contract::class, function ($app) {
                return new Concrete(config('database'));
            });
        }
    
        app(Contract::class) // Returns a Concrete implementation.
    

    Database

    Laravel Zero cho phép bạn cài đặt một Database

    php <your-app-name> app:install database
    

    Sử dụng

    use Illuminate\Support\Facades\DB;
    
    DB::table('users')->insert(
        ['email' => '[email protected]']
    );
    
    $users = DB::table('users')->get();
    

    Bạn có thể sử dụng tính năng Migration và Seeding của Laravel.

    Log

    Laravel Zero cho phép bạn cài đặt thành phần Log.

    php <your-app-name> app:install log
    

    Sự dụng tương tự như trong Laravel

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

    Filesystem

    Tương tự với Laravel:

    use Illuminate\Support\Facades\Storage;
    
    Storage::put("reminders.txt", "Task 1");
    

    Scheduler

    Laravel sử dụng Task Scheduling của Laravel. Để sử dụng bạn cần thêm đoạn Crontab sau đây vào server của bạn.

    * * * * * php /path-to-your-project/your-app-name schedule:run >> /dev/null 2>&1
    

    Bạn có thể định nghĩa tất cả các task của scheduler trong phương thức schedule của command:

        public function schedule(Schedule $schedule): void
        {
            $schedule->command(static::class)->everyMinute();
        }
    

    Environment Configuration

    Bạn có thể muốn cài đặt DotEnv PHP. Nó khá là hữu ích để quản lý các config cho các môi trường khác nhau của ứng dụng:

    php <your-app-name> app:install dotenv
    

    Cài đặt trên sẽ tạo ra một file .env.example không có nội dung tại thư mục gốc của bạn. Bạn nên tạo file .env để chứa các giá trị của biến môi trường. Ví dụ như

    SECRET_KEY=234567
    

    Bạn có thể lấy các giá trị này với helper env():

    echo env('SECRET_KEY') // outputs 234567
    

    Tài liệu tham khảo

    1. http://laravel-zero.com
      Nguồn: Viblo

Hãy đăng nhập để trả lời
 

Có vẻ như bạn đã mất kết nối tới LaptrinhX, vui lòng đợi một lúc để chúng tôi thử kết nối lại.