Laravel ialah rangka kerja pembangunan web PHP yang popular. Ia menyediakan kaedah pembangunan yang mudah, mudah dipelajari dan digunakan. Proses permulaan Laravel merangkumi berbilang langkah, setiap satunya mempunyai peranan khusus tersendiri. Di sebalik tabir, aliran kerja di belakang Laravel adalah rumit, tetapi reka bentuk rangka kerja Larevel menjadikan keseluruhan proses permulaan lebih mudah dan lebih intuitif. Berikut menerangkan proses permulaan Larevel secara terperinci.
1. Memuatkan teras rangka kerja
Semua proses permulaan Laravel bermula melalui fail kemasukan program. Keseluruhan proses permulaan bermula dengan fail public/index.php
. Satu-satunya fungsi fail ini adalah untuk memuatkan fail teras rangka kerja Laravel. Dalam public/index.php
, kita dapat melihat coretan kod berikut:
require __DIR__.'/../vendor/autoload.php'; $app = require_once __DIR__.'/../bootstrap/app.php';
Barisan pertama kod bertanggungjawab untuk memuatkan autoloader dalam direktori vendor yang dijana oleh Composer. Fail autoloader ini secara dinamik memuatkan semua kebergantungan yang diperlukan oleh rangka kerja pada masa jalan.
Barisan kedua bertanggungjawab untuk memuatkan teras aplikasi Laravel. Baris kod ini mengembalikan objek aplikasi instan bootstrap/app.php
dengan memanggil fungsi bootstrap()
dalam fail $app
.
2. Jalankan Bootstrap
bootstrap/app.php
Fail ialah fail but Laravel. Fail ini memulakan dan mengkonfigurasi pelbagai perkhidmatan dan komponen rangka kerja. Selain itu, fail memuatkan konfigurasi aplikasi, penghalaan, perisian tengah, pengendali pengecualian, dsb.
Dalam fail bootstrap/app.php
kita boleh melihat coretan kod berikut:
$app = new IlluminateFoundationApplication( realpath(__DIR__.'/../') ); $app->singleton( IlluminateContractsHttpKernel::class, AppHttpKernel::class ); $app->singleton( IlluminateContractsConsoleKernel::class, AppConsoleKernel::class ); $app->singleton( IlluminateContractsDebugExceptionHandler::class, AppExceptionsHandler::class ); return $app;
Coretan kod ini memulakan teras aplikasi, termasuk:
Application
yang menyediakan infrastruktur untuk masa jalan konsol aplikasi dan masa jalan HTTP. IlluminateContractsHttpKernel
, IlluminateContractsConsoleKernel
dan IlluminateContractsDebugExceptionHandler
. 3. Memuatkan penyedia perkhidmatan
Kami telah menyebut permohonan tiga penyedia perkhidmatan dalam langkah sebelumnya. Pembekal perkhidmatan adalah asas modulariti aplikasi Laravel dan bertanggungjawab untuk memberi perkhidmatan kepada semua fungsi aplikasi.
Pembekal perkhidmatan ditakrifkan dalam tatasusunan config/app.php
dalam fail providers
, yang menyenaraikan semua penyedia perkhidmatan yang tersedia dalam aplikasi. Apabila memulakan aplikasi, Laravel akan beralih melalui semua pembekal perkhidmatan dan mencipta satu pengikatan untuk mereka. Dengan cara ini, komponen lain aplikasi boleh mengakses perkhidmatan yang diperlukan dengan mudah.
Contohnya, jika kita menambah coretan kod berikut dalam fail config/app.php
:
'providers' => [ // ... AppProvidersCustomServiceProvider::class, // ... ],
Apabila aplikasi bermula, Laravel membuat instantiate dan mendaftar kelas AppProvidersCustomServiceProvider
yang kaedahnya harus mengembalikan perkhidmatan Contoh bekas.
4. Logik permulaan tersuai
Reka bentuk rangka kerja Laravel menjadikannya sangat mudah untuk menyesuaikan proses permulaan aplikasi. Fungsi dan prestasi aplikasi boleh dipertingkatkan dengan menambahkan logik tersuai.
Dalam fail bootstrap/app.php
, terdapat beberapa logik permulaan yang dipratentukan, seperti coretan kod berikut:
$app->registerCoreContainerAliases();
Jika anda ingin menambah logik permulaan tersuai, anda boleh menambahkannya pada penghujung daripada bootstrap/app.php
kod fail. Sebagai contoh, konfigurasi tersuai boleh ditambah pada aplikasi semasa permulaan:
$config = new MyCustomConfiguration(); $config->load();
5. Lancarkan kernel HTTP/Console
Seterusnya, aplikasi melancarkan kernel HTTP atau kernel konsol, bergantung pada Bagaimana aplikasi akan digunakan. Dalam fail bootstrap/app.php
, kami menyediakan dua kernel ini:
$app->singleton( IlluminateContractsHttpKernel::class, AppHttpKernel::class ); $app->singleton( IlluminateContractsConsoleKernel::class, AppConsoleKernel::class );
Kini aplikasi sedia untuk melancarkan konsol atau masa jalan HTTP mengikut keperluan. Dalam Laravel, anda boleh melancarkan konsol melalui alat baris arahan Artisan atau menjalankannya pada pelayan web yang dikonfigurasikan untuk memulakan larian HTTP.
6. Laksanakan permintaan respons
Jika infrastruktur HTTP dimulakan, apabila pengguna mengakses aplikasi, permintaan itu akan masuk ke dalam fail public/index.php
teras Laravel. Fail ini menghantar permintaan kepada kaedah pengawal yang betul melalui sistem penghalaan.
Secara umumnya, proses permulaan Laravel melibatkan banyak langkah, bermula dengan memuatkan teras rangka kerja dan maju melalui pembekal perkhidmatan, logik permulaan tersuai dan permulaan program konsol dan inti HTTP. Reka bentuk berorientasikan proses ini menjadikan Laravel sebagai rangka kerja yang sangat fleksibel, boleh disesuaikan dan mudah digunakan untuk pembangunan aplikasi semua saiz.
Atas ialah kandungan terperinci proses permulaan laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!