Rumah pembangunan bahagian belakang tutorial php Bagaimana untuk menggunakan Blade dengan CakePHP?

Bagaimana untuk menggunakan Blade dengan CakePHP?

Jun 04, 2023 am 10:01 AM
Cara menggunakan cakephp blade

CakePHP 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.

  1. 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.*"
    }
}
Salin selepas log masuk

dan kemudian jalankan perintah composer update dalam terminal untuk memasang dependensi.

  1. 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
            ]
        ]
    ]
]
Salin selepas log masuk

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

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.

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

Dalam templat ini, kami menggunakan @extends untuk menentukan reka letak. Kandungan antara @section dan @endsection akan dimasukkan ke dalam arahan @yield('content') reka letak.

  1. 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');
}
Salin selepas log masuk

Sebelum memberikan templat, kita perlu menentukan kelas paparan yang digunakan. Kami kemudian menghantar data ke paparan dan menentukan nama fail templat untuk dimuatkan.

  1. 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!

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

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menggunakan alat pembaikan DirectX? Penggunaan terperinci alat pembaikan DirectX Bagaimana untuk menggunakan alat pembaikan DirectX? Penggunaan terperinci alat pembaikan DirectX Mar 15, 2024 am 08:31 AM

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

Tarikh dan Masa CakePHP Tarikh dan Masa CakePHP Sep 10, 2024 pm 05:27 PM

Tarikh dan Masa CakePHP

Konfigurasi Projek CakePHP Konfigurasi Projek CakePHP Sep 10, 2024 pm 05:25 PM

Konfigurasi Projek CakePHP

Pengenalan kepada kod status HTTP 525: teroka definisi dan aplikasinya Pengenalan kepada kod status HTTP 525: teroka definisi dan aplikasinya Feb 18, 2024 pm 10:12 PM

Pengenalan kepada kod status HTTP 525: teroka definisi dan aplikasinya

Cara menggunakan Baidu Netdisk-Cara menggunakan Baidu Netdisk Cara menggunakan Baidu Netdisk-Cara menggunakan Baidu Netdisk Mar 04, 2024 pm 09:28 PM

Cara menggunakan Baidu Netdisk-Cara menggunakan Baidu Netdisk

Belajar menyalin dan menampal dengan cepat Belajar menyalin dan menampal dengan cepat Feb 18, 2024 pm 03:25 PM

Belajar menyalin dan menampal dengan cepat

Muat naik Fail CakePHP Muat naik Fail CakePHP Sep 10, 2024 pm 05:27 PM

Muat naik Fail CakePHP

Penghalaan CakePHP Penghalaan CakePHP Sep 10, 2024 pm 05:25 PM

Penghalaan CakePHP

See all articles