Rumah > pembangunan bahagian belakang > tutorial php > Gunakan kontrak Laravel untuk membina pakej 5 twig Laravel

Gunakan kontrak Laravel untuk membina pakej 5 twig Laravel

尊渡假赌尊渡假赌尊渡假赌
Lepaskan: 2025-02-18 10:48:11
asal
1045 orang telah melayarinya

kontrak Laravel 5: menyelam mendalam ke dalam penambahbaikan seni bina dan aplikasi praktikal dengan Twig

Laravel 5 memperkenalkan peningkatan seni bina yang signifikan: pakej kontrak. Artikel ini menerangkan rasional di sebalik perubahan ini dan menunjukkan kes penggunaan praktikal dengan menggantikan enjin templat bilah Laravel dengan simfony ranting, memanfaatkan kuasa kontrak.

Use Laravel Contracts to Build a Laravel 5 Twig Package

Konsep Utama:

Kontrak sebagai antara muka:
    Kontrak Laravel adalah antara muka yang menentukan tingkah laku tertentu. Bekas IOC mengikat antara muka ini ke pelaksanaan konkrit, yang membolehkan untuk menukar perkhidmatan mudah tanpa mengubah penggunaan antara muka.
  • Decoupling dan Fleksibiliti:
  • Pendekatan ini menggalakkan gandingan longgar, menjadikan kod lebih modular, boleh diuji, dan disesuaikan dengan penyedia perkhidmatan yang berbeza. Menggantikan bilah dengan ranting mencontohkan fleksibiliti ini.
  • Kontrak Stabil: Kontrak menyediakan API yang stabil, memastikan interaksi yang konsisten dengan komponen kerangka, walaupun perubahan pelaksanaan yang mendasari.
  • Memahami Kontrak:
Kontrak, pada dasarnya, adalah antara muka yang menyatakan tingkah laku. Ini sejajar dengan prinsip-prinsip pengaturcaraan berorientasikan objek di mana antara muka menentukan tandatangan kaedah tanpa butiran pelaksanaan. Bekas IOC Laravel memudahkan antara muka mengikat (kontrak) kepada pelaksanaannya. Contohnya:

Beralih ke perkhidmatan yang berbeza (mis., Fanout) hanya memerlukan perubahan yang mengikat:

Banyak perkhidmatan Laravel teras kini menggunakan kontrak, membolehkan mudah mengatasi. Sebagai contoh, untuk menggantikan perkhidmatan

, melaksanakan kontrak
$this->app->bind('App\Contracts\EventPusher', 'App\Services\PusherEventPusher');
Salin selepas log masuk
Salin selepas log masuk
.

$this->app->bind('App\Contracts\EventPusher', 'App\Services\FanoutEventPusher');
Salin selepas log masuk
Salin selepas log masuk
Menggantikan pisau dengan ranting menggunakan kontrak:

Illuminate/Mail IlluminateContractsMail Enjin templat lalai Laravel adalah pisau. Contoh ini menunjukkan menggantikannya dengan simfony ranting menggunakan kontrak.

1. Definisi pakej (composer.json):

2. Lihat Penyedia Perkhidmatan (TwigViewServiceProvider.php):

Penyedia ini mendaftarkan loader dan persekitaran Twig dalam bekas perkhidmatan Laravel.
{
  "name": "whyounes/laravel5-twig",
  "description": "Twig for Laravel 5",
  "authors": [
    {
      "name": "RAFIE Younes",
      "email": "younes.rafie@gmail.com"
    }
  ],
  "require": {
    "twig/twig": "1.18.*"
  },
  "autoload": {
    "psr-0": {
      "RAFIE\": "src/"
    }
  }
}
Salin selepas log masuk
Salin selepas log masuk

3. Lihat kilang (twigfactory.php):

Kilang ini mengimplementasikan
// ... (Provider code as in original example) ...
Salin selepas log masuk
dan mengendalikan penciptaan pandangan dan rendering menggunakan ranting.

4. Lihat pelaksanaan (twigview.php):

IlluminateContractsViewFactory

Kelas ini mengimplementasikan
// ... (Factory code as in original example) ...
Salin selepas log masuk
dan bertindak sebagai bekas untuk paparan ranting, berinteraksi dengan

.

5. Pendaftaran Penyedia Perkhidmatan (config/app.php): IlluminateContractsViewView TwigFactory

Daftar TwigViewServiceProvider dan komen pembekal paparan Laravel lalai:

$this->app->bind('App\Contracts\EventPusher', 'App\Services\PusherEventPusher');
Salin selepas log masuk
Salin selepas log masuk

6. Menggunakan ranting dalam laluan (app/http/routes.php):

Sekarang anda boleh menggunakan Templat Twig:

$this->app->bind('App\Contracts\EventPusher', 'App\Services\FanoutEventPusher');
Salin selepas log masuk
Salin selepas log masuk

7. Templat Twig (Sumber/Views/Home.Twig):

templat ranting sederhana:

{
  "name": "whyounes/laravel5-twig",
  "description": "Twig for Laravel 5",
  "authors": [
    {
      "name": "RAFIE Younes",
      "email": "younes.rafie@gmail.com"
    }
  ],
  "require": {
    "twig/twig": "1.18.*"
  },
  "autoload": {
    "psr-0": {
      "RAFIE\": "src/"
    }
  }
}
Salin selepas log masuk
Salin selepas log masuk

Use Laravel Contracts to Build a Laravel 5 Twig Package

Kesimpulan:

Kontrak Laravel 5 menawarkan mekanisme yang kuat untuk memperluaskan dan menyesuaikan rangka kerja. Menggantikan bilah dengan Twig menyoroti manfaat corak seni bina ini, yang membawa kepada aplikasi yang lebih bersih, lebih dapat diuji, dan fleksibel. API yang konsisten yang disediakan oleh kontrak memudahkan proses dan memastikan pemeliharaan. Projek lengkap boleh didapati di [pautan ke projek].

Soalan Lazim (Soalan Lazim):

(bahagian Soalan Lazim dari input asal sudah ditulis dengan baik dan komprehensif. Tiada perubahan diperlukan di sini.)

Atas ialah kandungan terperinci Gunakan kontrak Laravel untuk membina pakej 5 twig Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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