Rumah > Artikel > rangka kerja php > Mari kita bincangkan secara mendalam tentang kaedah bina() dalam bekas laravel
Laravel ialah rangka kerja PHP popular yang digunakan secara meluas untuk pembangunan aplikasi web. Anda boleh membina aplikasi web yang cekap menggunakan rangka kerja Laravel dengan cepat adalah konsep yang sangat penting dalam Laravel. Container ialah bekas perkhidmatan dalam Laravel, digunakan untuk mengurus kelas dalam semua aplikasi, terutamanya pembekal perkhidmatan dan kelas suntikan kebergantungan. Dalam Laravel, kaedah bekas yang sangat penting ialah kaedah build()
.
Dalam rangka kerja Laravel, bekas ialah konsep yang sangat penting, yang digunakan untuk mengurus kejadian kelas dalam aplikasi. Laravel mendaftarkan semua kelas ke dalam bekas, menjadikannya mudah untuk mengurus kelas ini. Dalam bekas, Laravel secara automatik akan menyelesaikan kebergantungan antara kelas, menjadikannya sangat mudah untuk menggunakan kelas.
Dalam Laravel, apabila menggunakan bekas, kita biasanya menggunakan kaedah pembina bekas. Tujuan kaedah ini adalah untuk mencipta contoh bekas baharu. Apabila membuat contoh kontena, kami boleh menghantar objek pembekal perkhidmatan ke dalam pembina, supaya kontena akan mendaftar dan menyelesaikan perkhidmatan dalam pembekal perkhidmatan secara automatik.
use Illuminate\Container\Container; $container = new Container();
Dalam Laravel, anda boleh menggunakan kaedah make()
bekas untuk mendapatkan perkhidmatan yang didaftarkan dalam bekas. Contohnya:
$app = $container->make('Illuminate\Contracts\Foundation\Application');
Dalam Laravel, kaedah yang sangat penting dalam bekas ialah kaedah build()
. Kaedah build()
digunakan untuk mencipta contoh kelas baharu. Apabila membuat contoh kelas, bekas akan menghuraikan secara automatik pembina kelas dan semua parameter yang diperlukannya. Sintaks kaedah
build()
adalah seperti berikut:
/** * Resolve the given type from the container. * * @param string $abstract * @param array $parameters * @return mixed */ public function build($abstract, array $parameters = array());
Apabila menggunakan kaedah build()
, kita perlu lulus dalam kelas abstrak atau nama antara muka sebagai parameter, dan bekas akan cuba mencipta Contoh kelas ini. Jika pembina kelas ini perlu bergantung pada kelas lain, bekas akan menyelesaikan kebergantungan ini secara automatik.
Sebagai contoh, kami mempunyai kelas pembekal perkhidmatan AppProvidersLoggerServiceProvider
, yang mempunyai kaedah register()
, yang akan mendaftarkan contoh log ke dalam bekas:
use App\Loggers\DatabaseLogger; class LoggerServiceProvider extends ServiceProvider { public function register() { $this->app->singleton('logger', function ($app) { return new DatabaseLogger($app->make('Illuminate\Database\ConnectionInterface')); }); } }
di atas Dalam kod , kami menggunakan kaedah singleton()
untuk mendaftarkan tika log ke dalam bekas dan menyatakan bahawa tika log ini bergantung pada antara muka IlluminateDatabaseConnectionInterface
. Apabila bekas mencipta contoh log, ia akan menyelesaikan pergantungan ini secara automatik.
Kita boleh menggunakan kaedah make()
bekas untuk mendapatkan contoh log ini:
$logger = $container->make('logger');
Dalam kod di atas, bekas akan menghuraikan kelas DatabaseLogger
secara automatik dan menukar IlluminateDatabaseConnectionInterface
Antara muka disuntik ke dalam kelas ini dan akhirnya contoh log dikembalikan.
Bekas ialah konsep yang sangat penting dalam aplikasi Laravel. Bekas boleh digunakan untuk mengurus kejadian kelas dengan mudah dalam aplikasi dan kebergantungan antara kelas boleh diselesaikan secara automatik. Apabila menggunakan bekas, kaedah build()
ialah kaedah yang sangat penting untuk mencipta kejadian kelas dan menyelesaikan kebergantungan secara automatik dalam pembinanya.
Atas ialah kandungan terperinci Mari kita bincangkan secara mendalam tentang kaedah bina() dalam bekas laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!