Tìm hiểu Laravel Zero (Công cụ phát triển ứng dụng bản điều khiển)

Laravel Zero là gì? Một mã nguồn mở PHP Framework được xây dựng dựa trên các thành phần của Laravel. nó nhẹ và moduls để phát triển các console-application nhanh và mạnh mẽ. Được phát triển bới Nuno Maduro kỹ sư phần mềm tại Laravel. Laravel Zero có cú pháp đơn giản cho phép các

Laravel Zero là gì?

Một mã nguồn mở PHP Framework được xây dựng dựa trên các thành phần của Laravel. nó nhẹ và moduls để phát triển các console-application nhanh và mạnh mẽ. Được phát triển bới Nuno Maduro kỹ sư phần mềm tại Laravel.

Laravel Zero có cú pháp đơn giản cho phép các nhà phát triển xây dựng các ứng dụng rất phức tạp nhanh hơn nhiều so với bất kỳ khung công tác nào trước đây.

Bài viết này mình sẽ giới thiệu cũng như thực hiện một Project nhỏ trên HĐH ubuntu để mọi người cùng hiểu qua về nó nhé!.


Prerequisites

Composer (mọi người tham khảo cách cài Composer tại đây).

PHP là tất nhiên rồi ^^!.

Nhớ kiểm tra xem bạn đã cài modules PHP này chưa nhé

  • php-mbstring
  • php-xml

để kiểm tra bạn gõ trên terminal :

php -m

nếu chưa có thì cài như sau

sudo apt install php-mbstring php-xml


Installation

Tạo một project Laravel Zero tên “hello-word” (mọi người đổi tên cũng được nhé)

composer create-project --prefer-dist laravel-zero/laravel-zero hello-world

Cài xong mọi người di chuyển vào thư mục đó

cd hello-word

Tiếp tục mọi người chạy lệnh

php aplication

Hiển thị như hình này là ok rồi nhá.

Mở folder “hello-word” lên bạn sẽ thấy cấu trúc thư mục như này


Commands

Để tạo một command, chạy lệnh

php hello-world make:command HelloWorldCommand

Mở file đã được tạo ra trong app/Commands/HelloWorldCommand.php

Sửa theo ý của bạn

class HelloWorldCommand extends Command
{
    protected $signature = 'command:hello'; // sửa lại theo tên lệnh mà bạn muốn khi gõ trên terminal

    protected $description = 'Command description';

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
        // trong đây viết những xử lý mà bạn cần
        echo "hello world"; 
    }
}

Configuration

Các tệp cấu hình cho ứng dụng Laravel Zero được lưu trữ bên trong thư mục config.

  • config/app.php: chứa một số thông tin cho ứng dụng của bạn
  • config/commands.php: bạn có thể định cấu hình danh sách các lệnh mặc định trong đây

Ở đây mình sẽ tạo một file config riêng lưu lại messages

touch config/hello.php

<?php
    return [
        'hello_world' => 'HELLO WORLD',
    ];

Lúc này bạn đã có 1 file config của bạn, bạn có thể gọi nó ở bất cứ đâu theo cách gọi giống với Laravel

config('hello.hello_word')

Addons

Laravel Zero đảm bảo cho project của bạn nhẹ nhất có thể nên sẽ để bạn tự cài những phần bổ trợ mà bạn cần dùng.

php application app:install

Lúc này nó sẽ hiển thị các phần bổ trợ, bạn có thể chọn. Ở hình này mình cài dotenv


Logging

Tương tự như ở trên, để sử dụng Log bạn chạy lệnh sau:

php application app:install log

Sau khi cài thành công bạn có thể sử dụng tương tự như Larvel

Ví dụ: trong file commands/HelloWorldCommand.php sửa lại hàm handle() như sau:

  public function handle()
    {
        Log::info(config('hello.hello_word'));
   }

Database

Tương tự như ở trên, để sử dụng được Eloquent giống như Laravel bạn cần chạy lệnh sau

php application app:install database

Thao tác này sẽ thêm tệp cấu hình mới cho bạn tại config/database.php, bạn có thể định cấu hình chi tiết cơ sở dữ liệu của mình. Theo mặc định, nó sử dụng SQLite nên bạn không cần thực hiện bất kỳ thay đổi nào trừ khi bạn muốn sử dụng một công cụ SQL khác.

Mình sẽ sửa lại để kết nối với Mysql trên máy mình, vào thư mục config/database.php sửa lại những chỗ dưới đây như sau:

'default' => env('DB_CONNECTION', 'mysql'),
 ...
 'connections' => [
     ...,
     'mysql' => [
            ...
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'test'), // tên cơ sở dữ liệu
            'username' => env('DB_USERNAME', 'root'), 
            'password' => env('DB_PASSWORD', 'password'),
            ...
     ],
]

Tiếp theo tạo migrate bằng câu lệnh

php application make:migration users

Vào thư mục database/migrations/[thư_mục_vừa_được_tạo_từ_câu_lệnh_trên].php sửa lại thành:

class Users extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->text('password');
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::drop('users');
    }
}

Sau đó chạy lệnh để tiến hành migrate

php application migrate

Nào quay trở lại với file app/HelloWorldCommand.php ta sẽ test thử tý, sửa lại hàm handle() như sau:

 public function handle()
    {
        Log::info(config('hello.hello_word'));

        // tạo mới 1 user
        DB::table('users')->insert([
            'name' => 'Minh Pham ' . Date('H_i_s'),
            'password' => '1111'
        ]);

        // hien thi danh sach user
        Log::info(DB::table('users')->get());
    }

Sửa xong lưu lại nhé.


Building the application

Khi bạn đã sẵn sàng với việc xây dựng ứng dụng, bạn có thể chạy lệnh sau để tạo một tệp thực thi:

php application app:build

Khi build nó sẽ hỏi version bạn muốn build, nhập version vào rồi enter tiếp tục nhé.

Xong !!! giờ thì chạy câu lệnh

php application

Để xem những lệnh mà bạn đã khởi tạo nào

Trong hình thì bạn thấy có thêm một lệnh command:hello , nó chính là lệnh mà mình đã tạo ra trong file commands/HelloWorldCommand.php

Tiếp tục chạy lệnh

php application command:hello

và xem kết quả nhé!

Lời kết

Bài viết này mình đã giới thiệu qua cho mọi người cách sử dụng Laravel Zero, còn nhiều cái hay mình sẽ giới thiệu mọi người ở bài sau nhé.
Cảm ơn mọi ngườiii !


Nguồn: viblo.asia

Bài viết liên quan

WebP là gì? Hướng dẫn cách để chuyển hình ảnh jpg, png qua webp

WebP là gì? WebP là một định dạng ảnh hiện đại, được phát triển bởi Google

Điểm khác biệt giữa IPv4 và IPv6 là gì?

IPv4 và IPv6 là hai phiên bản của hệ thống địa chỉ Giao thức Internet (IP). IP l

Check nameservers của tên miền xem website trỏ đúng chưa

Tìm hiểu cách check nameservers của tên miền để xác định tên miền đó đang dùn

Mình đang dùng Google Domains để check tên miền hàng ngày

Từ khi thông báo dịch vụ Google Domains bỏ mác Beta, mình mới để ý và bắt đầ