Rumah > rangka kerja php > Laravel > proses permulaan laravel

proses permulaan laravel

WBOY
Lepaskan: 2023-05-20 17:40:07
asal
1796 orang telah melayarinya

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';
Salin selepas log masuk

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;
Salin selepas log masuk

Coretan kod ini memulakan teras aplikasi, termasuk:

  1. kejadian Kembali objek Application yang menyediakan infrastruktur untuk masa jalan konsol aplikasi dan masa jalan HTTP.
  2. mengikat pelbagai penyedia perkhidmatan, seperti 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,
    // ...
],
Salin selepas log masuk

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();
Salin selepas log masuk

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();
Salin selepas log masuk

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
);
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan