Các bạn đã bao giờ nghe đến Laravel Zero chưa? Nếu chưa, thì đây là lúc các bạn nên tìm hiểu xem Laravel Zero là gì. Nó có hữu ích gì cho công việc và dự án của các bạn hay không.
Giới thiệu về Laravel Zero
Laravel Zero là một loại framework và nó chuyên cung cấp giải pháp phát triển console application. Cha đẻ của Laravel Zero là ông Nuno Maduro. Laravel Zero là phiên bản không chính thức của Laravel và nó được điều chỉnh linh hoạt nhằm tối ưu cho ứng dụng dòng lệnh. Khi thử sử dụng Laravel Zero, các bạn sẽ nhận thấy nó có một số đặc điểm nổi bật:
- Xây dựng nền móng dựa trên các Laravel Component
- Linh hoạt cài đặt Laravel Eloquent, Laravel Logging và nhiều loại khác
- Hỗ trợ desktop notification trên hệ Linux, Windows và MacOS
- Có thể hoạt động cùng với Scheduler
Cách cài đặt Laravel Zero
Đầu tiên, các bạn cần phải có PHP 7.1.3+. Tiếp theo, các bạn tạo mới một dự án với Composer như sau:
composer create-project --prefer-dist laravel-zero/laravel-zero
Sau đó, các bạn bắt đầu khởi chạy ứng dụng và đừng quên chạy câu lệnh dưới đây ở thư mục gốc của ứng dụng:
php
Bạn có thể thay đổi tên ứng dụng của bạn nếu muốn bằng dòng lệnh này:
php app:rename
Cách tạo App\Demands
Để tạo mới Demands, các bạn thực hiện dòng lệnh sau:
php make:command
Desktop notifications
Tham khảo dòng lệnh:
$this->notify("Hello Web Artisan", "Love beautiful..", "icon.png");
Tasks
Tham khảo dòng lệnh này:
$this->task("Installing Laravel", function () {
return true;
});
$this->task("Doing something else", function () {
return false;
});
Menu tương tác
Tham khảo dòng lệnh sau:
$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");
Đôi khi, các bạn sẽ cần điều 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 như thế nào?
Khi sử dụng Laravel Zero, các bạn nên nghĩ đến Laravel Service Providers để định nghĩa các triển khai cụ thể. Các bạn nên khai báo ở app\Providers\AppServiceProvider.php hoặc khởi tạomột service provider mới hoàn toàn.
public function register()
{
$this->app->singleton(Contract::class, function ($app) {
return new Concrete(config('database'));
});
}
app(Contract::class) // Returns a Concrete implementation.
Database trong Laravel Zero
Khi sử dụng Laravel Zero, các bạn có thể cài đặt Database.
php app:install database
Khi sử dụng:
use Illuminate\Support\Facades\DB;
DB::table('users')->insert(
['email' => '[email protected]']
);
$users = DB::table('users')->get();
Trong Laravel Zero, các bạn có thể sử dụng tính năng Migration và Seeding.
Log
Khi sử dụng Laravel Zero, các bạn có thể cài đặt thành phần Log.
php app:install log
Các bạn có thể sử dụng Log trong Laravel Zero tương tự 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 là gì?
Filesystem cũng tương tự như với Laravel.
use Illuminate\Support\Facades\Storage;
Storage::put("reminders.txt", "Task 1");
Scheduler là gì?
Laravel thường sử dụng Task Scheduling. Đây là tính năng có sẵn của Laravel. Nếu bạn muốn sử dụng nó, thì bạn đừng quên thêm đoạn Crontab vào server của bạn.
* * * php /path-to-your-project/your-app-name schedule:run >> /dev/null 2>&1
Bạn cũng có thể tạo một số định nghĩa của 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 là gì?
Để quản lý các config cho nhiều môi trường của các ứng dụng, các bạn nên cài đặt DotEnv PHP.
php app:install dotenv
Khi cài đặt DotEnv PHP, nó sẽ tạo một file .env.example không có nội dung tại thư mục gốc. Do đó, bạn nên tạo file .env để có thể chứa đầy đủ các giá trị của biến môi trường. Ví dụ như sau:
SECRET_KEY=234567
Bạn có thể lấy một số giá trị ra khi nhập dòng lệnh helper env():
echo env('SECRET_KEY') // outputs 234567
Huu ich
Cảm ơn Admin. Bài viết khá hay !
OK bạn, mình sẽ sắp xếp viết một bài về Extend Validation. Cảm ơn bạn đã quan tâm nhé.
Đúng rồi bạn, cái hàm này mình định nghĩa ở model User nhé.
Nhân tiện, Ad có thể giới thiệu thêm Extend Validation.