Aplikasi CLI (Command-Line Interface) ialah program komputer yang berinteraksi dengan pengguna melalui arahan teks yang dimasukkan dalam terminal atau konsol. Tidak seperti aplikasi web yang bergantung pada antara muka pengguna grafik (GUI), aplikasi CLI adalah berasaskan teks dan sering digunakan untuk automasi, pentadbiran sistem dan tugas pemprosesan data.
Laravel ialah rangka kerja PHP yang berkuasa yang memudahkan pembangunan aplikasi web. Sintaksnya yang elegan, ciri teguh dan ekosistem yang luas menjadikannya pilihan yang sangat baik untuk membina aplikasi CLI. Dengan alat baris perintah Artisan Laravel, anda boleh membuat dan mengurus arahan dengan cepat, menjadikannya mudah untuk mengautomasikan tugas dan skrip.
Docker ialah platform kontena yang membungkus aplikasi dan kebergantungannya ke dalam bekas mudah alih. Dengan menggunakan Docker, kami boleh mencipta persekitaran terpencil untuk aplikasi Laravel kami, memastikan konsistensi dan kebolehulangan merentas persekitaran pembangunan dan pengeluaran yang berbeza.
Dalam artikel ini, kami akan meneroka cara memanfaatkan Laravel dan Docker untuk membina aplikasi CLI yang mantap dan cekap.
Untuk bermula, mari buat projek Laravel baharu. Anda boleh menggunakan pemasang Laravel untuk menyediakan projek baharu dengan pantas:
laravel new my-cli-app
Arahan ini akan mencipta direktori baharu bernama my-cli-app dan memulakan projek Laravel baharu di dalamnya.
Alat baris arahan terbina dalam Laravel, artisan, ialah inti kepada rangka kerja. Kami boleh menggunakannya untuk mencipta dan mengurus pelbagai aspek aplikasi kami. Untuk membuat arahan baharu, kami akan menggunakan arahan make:command Artisan:
php artisan make:command GreetUser
Arahan ini akan menjana kelas arahan baharu bernama GreetUser dalam direktori apl/Console/Commands. Struktur asas kelas arahan kelihatan seperti ini:
<?php namespace App\Console\Commands; use Illuminate\Console\Command; class GreetUser extends Command { /** * The name and signature of the console command. * * @var string */ protected $signature = 'greet:user {name?}'; /** * The console command description. * * @var string */ protected $description = 'Greet a user'; /** * Execute the console command. * * @return int */ public function handle() { $name = $this->argument('name'); if ($name) { $this->info("Hello, {$name}!"); } else { $this->info('Hello, world!'); } return Command::SUCCESS; } }
Dalam contoh ini:
- $signature: Mentakrifkan nama arahan dan sebarang hujah atau pilihan pilihan. Bahagian {name?} menunjukkan argumen pilihan bernama nama.
- $description: Menyediakan penerangan ringkas tentang arahan.
- handle(): Mengandungi logik teras arahan. Ia mengakses argumen nama menggunakan $this->argument('name') dan mencetak mesej ucapan kepada konsol.
Untuk menjalankan arahan ini, gunakan arahan berikut dalam terminal anda:
php artisan greet:user JohnDoe
Ini akan mengeluarkan:
laravel new my-cli-app
Kaedah pemegang() ialah tempat keajaiban sebenar berlaku. Di sinilah anda akan menentukan logik teras arahan anda. Anda boleh mengakses argumen dan pilihan arahan, berinteraksi dengan rangka kerja Laravel dan melaksanakan pelbagai tugas.
Berikut ialah contoh perintah yang mengambil data daripada API dan memprosesnya:
php artisan make:command GreetUser
Dalam contoh ini:
- Mengambil Data: Kami menggunakan fasad Http untuk menghantar permintaan HTTP GET ke URL yang ditentukan.
- Memproses Data: Jika permintaan berjaya, kami menghuraikan respons JSON dan memproses data seperti yang diperlukan.
- Output: Kami menggunakan kaedah maklumat dan ralat untuk memaparkan mesej kepada konsol.
Untuk menguji arahan anda, hanya laksanakan menggunakan perintah php artisan:
<?php namespace App\Console\Commands; use Illuminate\Console\Command; class GreetUser extends Command { /** * The name and signature of the console command. * * @var string */ protected $signature = 'greet:user {name?}'; /** * The console command description. * * @var string */ protected $description = 'Greet a user'; /** * Execute the console command. * * @return int */ public function handle() { $name = $this->argument('name'); if ($name) { $this->info("Hello, {$name}!"); } else { $this->info('Hello, world!'); } return Command::SUCCESS; } }
Ingat untuk menggantikan https://api.example.com/data dengan titik akhir API sebenar.
Ini akan mencetuskan kaedah handle() bagi arahan FetchData, dan anda akan melihat output yang sesuai dalam terminal anda.
Docker ialah alat yang berkuasa untuk menyimpan aplikasi. Dengan memasukkan kontena aplikasi Laravel anda, anda boleh memastikan persekitaran yang konsisten merentas tetapan pembangunan dan pengeluaran yang berbeza.
Fail Docker ialah dokumen teks yang mengandungi arahan tentang cara membina imej Docker. Berikut ialah Fail Docker asas untuk aplikasi Laravel:
php artisan greet:user JohnDoe
Fail Docker Compose mentakrifkan dan menjalankan aplikasi Docker berbilang bekas. Berikut ialah fail Karang Docker asas untuk aplikasi Laravel:
Hello, JohnDoe!
Fail Docker Compose ini mentakrifkan dua perkhidmatan:
Untuk membina imej Docker, navigasi ke direktori akar projek anda di terminal anda dan jalankan arahan berikut:
<?php namespace App\Console\Commands; use Illuminate\Console\Command; use Illuminate\Support\Facades\Http; class FetchData extends Command { protected $signature = 'fetch:data {url}'; protected $description = 'Fetch data from a given URL'; public function handle() { $url = $this->argument('url'); $response = Http::get($url); if ($response->successful()) { $data = $response->json(); // Process the data here $this->info('Data fetched and processed successfully!'); } else { $this->error('Failed to fetch data.'); } } }
Arahan ini akan membina imej Docker yang ditakrifkan dalam Dockerfile dan menandakannya dengan nama (biasanya nama perkhidmatan daripada fail docker-compose.yml).
Setelah imej dibina, anda boleh memulakan bekas menggunakan arahan berikut:
laravel new my-cli-app
Arahan ini akan memulakan aplikasi dan bekas pangkalan data dalam mod tertanggal, membolehkan anda mengakses aplikasi anda dalam penyemak imbas anda. Anda boleh mengakses aplikasi anda di http://localhost:8000.
Untuk menghentikan bekas, gunakan arahan berikut:
php artisan make:command GreetUser
Apabila aplikasi CLI anda berkembang, adalah penting untuk memastikan arahan anda teratur dan modular. Pertimbangkan untuk memecahkan perintah kompleks kepada perintah yang lebih kecil dan lebih fokus. Anda boleh menggunakan pembekal perkhidmatan dan fasad untuk menyuntik kebergantungan dan berkongsi logik antara arahan.
Melaksanakan pengendalian dan pengelogan ralat yang mantap adalah penting untuk menyahpepijat dan memantau aplikasi CLI anda. Laravel menyediakan sistem pengelogan berkuasa yang boleh anda gunakan untuk mengelog ralat, amaran dan mesej maklumat. Anda juga boleh menggunakan alatan pengelogan luaran seperti Loggly atau Papertrail untuk ciri pengelogan yang lebih maju.
Menulis ujian unit untuk logik arahan anda adalah penting untuk memastikan kualiti dan kebolehselenggaraan kod. Anda boleh menggunakan PHPUnit atau rangka kerja ujian lain untuk menulis ujian yang meliputi senario dan kes tepi yang berbeza.
Untuk menggunakan aplikasi Dockerized Laravel anda, anda boleh menggunakan alatan orkestrasi kontena seperti Kubernetes atau Docker Swarm. Alat ini membolehkan anda mengurus dan menskalakan aplikasi anda merentas berbilang hos.
Anda juga boleh menyepadukan aplikasi anda dengan saluran paip CI/CD untuk mengautomasikan proses binaan, ujian dan penggunaan. Alat CI/CD popular termasuk Jenkins, GitLab CI/CD dan CircleCI.
Dengan mengikuti amalan terbaik dan teknik lanjutan ini, anda boleh membina aplikasi CLI yang berkuasa dan cekap dengan Laravel dan Docker.
Dalam artikel ini, kami telah meneroka cara membina aplikasi CLI yang mantap dan cekap menggunakan Laravel dan Docker. Dengan memanfaatkan kuasa alatan ini, anda boleh mencipta alatan baris perintah yang mengautomasikan tugas, memproses data dan berinteraksi dengan infrastruktur aplikasi anda.
Kami telah merangkumi asas-asas mencipta arahan Laravel, menulis logik arahan dan membekalkan aplikasi anda dengan Docker. Kami juga telah membincangkan amalan terbaik untuk organisasi arahan, pengendalian ralat, ujian dan penggunaan.
Sambil anda terus membina dan meningkatkan aplikasi CLI anda, ingat untuk memastikan kod anda bersih, diuji dengan baik dan boleh diselenggara. Dengan mengikuti garis panduan ini dan meneroka ciri lanjutan Laravel dan Docker, anda boleh mencipta alatan CLI yang berkuasa dan fleksibel yang menyelaraskan aliran kerja anda.
Atas ialah kandungan terperinci Mencipta Aplikasi CLI Dengan Laravel dan Docker. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!