Bagaimana untuk menggunakan Blade dengan CakePHP?
Jun 04, 2023 am 10:01 AMCakePHP ialah rangka kerja PHP MVC yang popular, dan Blade ialah salah satu enjin templat yang sangat popular dalam rangka kerja Laravel. Walaupun CakePHP datang dengan enjin templat yang berkuasa, kadangkala kita mungkin mahu menggunakan enjin templat lain untuk menggantikan enjin lalai.
Dalam artikel ini, saya akan memperkenalkan cara menggunakan enjin templat Blade dalam CakePHP 3, dengan harapan dapat membantu beberapa pembangun yang ingin mencuba Blade.
- Pasang Blade
Mula-mula, kita perlu memasang Blade, yang boleh dilakukan melalui Composer. Tambahkan dependensi pada fail composer.json dalam direktori akar projek:
{ "require": { "illuminate/view": "5.8.*" } }
dan kemudian jalankan perintah composer update
dalam terminal untuk memasang dependensi.
- Mengkonfigurasi CakePHP
Seterusnya, kita perlu mengkonfigurasi CakePHP untuk menggunakan enjin templat Blade. Mula-mula, tambah kod berikut dalam fail config/app.php:
'View' => [ 'className' => 'CakeViewView', 'viewPath' => APP . 'Template/', 'layoutPath' => APP . 'Template/Layout/', 'templatePath' => APP . 'Template/', 'cachePath' => CACHE . 'views/', 'helpers' => [ 'Html', 'Form', 'Url' ], 'useRenderCache' => false, 'engine' => [ 'Blade' => [ 'className' => 'CakeBladeBladeEngine', 'options' => [ 'cache_path' => TMP . 'blade_cache', 'view_path' => APP . 'Template/', 'auto_reload' => true ] ] ] ]
Dalam tatasusunan konfigurasi ini, kami menentukan konfigurasi paparan CakePHP dan menambah enjin templat bernama "Blade". Dalam pilihan Blade, kami menentukan laluan cache, laluan lihat dan sama ada untuk memuat semula templat secara automatik.
Seterusnya, kita perlu menambah fail untuk mentakrifkan enjin Blade dalam src/View/BladeEngine.php.
<?php namespace CakeBlade; use CakeViewEngineEngine; use IlluminateViewCompilersBladeCompiler; use IlluminateViewEnginesCompilerEngine; use IlluminateViewFactory; use IlluminateViewFileViewFinder; class BladeEngine extends Engine { public $Factory; public function __construct($view = null, $layout = null) { parent::__construct($view, $layout); $config = CakeCoreConfigure::read('App'); $viewPath = $config['Template']['templatePath']; $cachePath = $config['engine']['Blade']['options']['cache_path']; $this->Factory = new Factory(new FileViewFinder([$viewPath]), new CompilerEngine(new BladeCompiler(new Filesystem, $cachePath))); } public function render($template, $layout = null) { return $this->Factory->make($template, compact('data'))->render(); } }
Dalam kelas ini, kami mentakrifkan kelas BladeEngine, yang mewarisi daripada kelas Enjin dalam CakePHP. Dalam pembina, kita membaca laluan pandangan menggunakan konfigurasi CakePHP dan menyerahkannya kepada pembina Blade supaya Blade boleh mencari fail templat. Selain itu, kami menambah laluan cache untuk meningkatkan prestasi. Dalam fungsi render, kami menggunakan kelas Kilang Blade untuk memaparkan templat.
- Buat fail templat
Sekarang kita telah selesai mengkonfigurasi dan mentakrifkan enjin Blade, kita boleh mula menulis fail templat. Dalam CakePHP, kita boleh mencipta fail templat dalam direktori src/Template/.
Sebagai contoh, kita boleh mencipta templat Blade ringkas dalam src/Template/Pages/home.blade.php:
@extends('Layout.default') @section('content') <div class="jumbotron"> <h1>Welcome to CakeBlade</h1> <p>CakePHP 3 + Blade Template Engine.</p> <p><a class="btn btn-primary btn-lg" href="#" role="button">Learn more</a></p> </div> @endsection
Dalam templat ini, kami menggunakan @extends untuk menentukan reka letak. Kandungan antara @section dan @endsection akan dimasukkan ke dalam arahan @yield('content') reka letak.
- Templat Rendering
Kini, kita boleh membuat templat dalam pengawal dengan memanggil enjin Blade. Sebagai contoh, tambahkan kod berikut dalam PagesController:
public function home() { $this->getViewBuilder()->setClassName('CakeBlade.Blade'); $this->set(compact('data')); $this->render('home'); }
Sebelum memberikan templat, kita perlu menentukan kelas paparan yang digunakan. Kami kemudian menghantar data ke paparan dan menentukan nama fail templat untuk dimuatkan.
- Jalankan ujian
Kini kita boleh melawati halaman dalam penyemak imbas untuk melihat sama ada Blade berfungsi dengan betul. Masukkan nama fail dalam bar alamat, seperti http://localhost/cake_blade/pages/home, dan anda akan melihat templat Blade yang baru anda tulis, yang sama seperti yang kami takrifkan dalam fail templat.
Ringkasan
Dalam artikel ini, kami memperkenalkan cara menggunakan enjin templat Blade dalam CakePHP 3 untuk menggantikan enjin templat lalai. Dengan cara ini, kami boleh membangunkan aplikasi web menggunakan sintaks dan ciri berkuasa yang disediakan oleh Blade. Jika anda sedang mencari enjin templat yang kaya dengan ciri, Blade ialah pilihan yang bagus.
Atas ialah kandungan terperinci Bagaimana untuk menggunakan Blade dengan CakePHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Bagaimana untuk menggunakan alat pembaikan DirectX? Penggunaan terperinci alat pembaikan DirectX

Pengenalan kepada kod status HTTP 525: teroka definisi dan aplikasinya

Cara menggunakan Baidu Netdisk-Cara menggunakan Baidu Netdisk

Belajar menyalin dan menampal dengan cepat
