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

Gunakan kontrak Laravel untuk membina pakej 5 twig Laravel

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌asal
2025-02-18 10:48:111050semak imbas

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
<code class="language-php">$this->app->bind('App\Contracts\EventPusher', 'App\Services\PusherEventPusher');</code>
.

<code class="language-php">$this->app->bind('App\Contracts\EventPusher', 'App\Services\FanoutEventPusher');</code>
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.
<code class="language-json">{
  "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/"
    }
  }
}</code>

3. Lihat kilang (twigfactory.php):

Kilang ini mengimplementasikan
<code class="language-php">// ... (Provider code as in original example) ...</code>
dan mengendalikan penciptaan pandangan dan rendering menggunakan ranting.

4. Lihat pelaksanaan (twigview.php):

IlluminateContractsViewFactory

Kelas ini mengimplementasikan
<code class="language-php">// ... (Factory code as in original example) ...</code>
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:

<code class="language-php">$this->app->bind('App\Contracts\EventPusher', 'App\Services\PusherEventPusher');</code>

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

Sekarang anda boleh menggunakan Templat Twig:

<code class="language-php">$this->app->bind('App\Contracts\EventPusher', 'App\Services\FanoutEventPusher');</code>

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

templat ranting sederhana:

<code class="language-json">{
  "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/"
    }
  }
}</code>

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:
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