Twig - Enjin Templat PHP yang paling popular
Twig: enjin templat php popular
Twig adalah enjin templat PHP yang popular yang dibangunkan oleh Sensio Labs. Twig bertindak pada kedua -dua frontend dan backend projek, dan boleh dilihat dari dua perspektif: ranting untuk pereka templat dan ranting untuk pemaju. Twig menggunakan objek teras bernama untuk menyimpan konfigurasi, sambungan, dan templat beban dari sistem fail atau di tempat lain. Twig menyokong templat bersarang (blok), mengelakkan pertindihan unsur -unsur dalam templat, dan boleh disusun templat untuk mempercepatkan permintaan berikutnya. Twig menyokong penyata bersyarat, gelung dan penapis untuk mengawal paparan maklumat dalam templat dan menyediakan keupayaan debug untuk membuang semua maklumat mengenai pembolehubah templat. Environment
Artikel ini telah dikaji semula oleh Wern Ancheta. Terima kasih kepada semua pengulas rakan sebaya SitePoint untuk mendapatkan kandungan SitePoint untuk yang terbaik!
Twig adalah enjin templat php. Tetapi bukan PHP sendiri enjin templat? Ya, tidak! Walaupun PHP pada asalnya digunakan sebagai enjin templat, ia tidak berkembang, dan walaupun kita masih boleh menggunakannya sebagai enjin templat, versi "Hello World" yang anda suka:
<?php echo "<p> Hello " . $name . "</p>"; ?>
<p>Hello {{ name }}</p>
Twig adalah enjin templat yang dicipta oleh Sensio Labs (syarikat pembangunan Blackfire dan Symfony). Mari kita lihat kelebihan utamanya dan cara menggunakannya dalam projek anda.
Pemasangan
Terdapat dua cara untuk memasang Twig. Kami boleh menggunakan pakej tar yang terdapat di laman web mereka, atau menggunakan komposer seperti yang telah kami lakukan.
composer require twig/twig
kita perlu menjelaskan sesuatu sebelum kita dapat meneruskan. Sebagai enjin templat, Twig bertindak pada kedua -dua frontend dan backend projek. Oleh itu, kita dapat melihat ranting dari dua perspektif yang berbeza: Twig untuk pereka templat dan ranting untuk pemaju. Di satu pihak, kami menyediakan semua data yang kami perlukan;
Penggunaan Asas
Untuk menggambarkan penggunaan asas Twig, mari buat projek mudah. Pertama, kita perlu ranting bootstrap. Mari buat fail Twig menggunakan objek teras bernama Ini adalah contoh mudah; Kemudian kami menggunakan kaedah Buka digunakan untuk mencetak hasil ekspresi atau operasi, manakala (Kandungan berikut adalah serupa dengan teks asal, tetapi beberapa pelarasan pernyataan dan bahagian perenggan telah dibuat, dan kedudukan imej tetap tidak berubah)
Layout
: . Kami bermaksud bahawa setiap templat yang meluas dari
Cache Objek (Kandungan berikut adalah serupa dengan teks asal, tetapi beberapa pelarasan pernyataan dan bahagian perenggan telah dibuat, dan kedudukan imej tetap tidak berubah) Cycle Dalam contoh kami, kami telah melihat bagaimana untuk gelung dengan ranting. Pada asasnya, kami menggunakan tag
, dan ia berfungsi dengan cara yang sama seperti fungsi PHP pernyataan bersyarat
, penapis
Format penapis tarikh ke format yang diberikan. Seperti yang kita lihat dalam contoh: , kita juga boleh menggunakan penapis
adalah salah satu penapis yang paling penting. Ia menapis rentetan untuk memasukkan dengan selamat ke dalam output akhir. Secara lalai, ia menggunakan dasar melarikan diri HTML, jadi
, Debug Akhirnya, mari kita lihat debugging. Kadang -kadang kita perlu mengakses semua maklumat pembolehubah templat. Untuk melakukan ini, Twig mempunyai fungsi Langkah ini diperlukan supaya kami tidak sengaja membocorkan maklumat debug pada pelayan pengeluaran. Sebaik sahaja konfigurasi selesai, kami hanya menggunakan fungsi Kesimpulan Saya harap artikel ini akan memberi anda asas yang kukuh untuk asas -asas ranting dan memulakan projek anda dengan segera! Jika anda ingin melihat lebih mendalam di Twig, laman web rasmi menyediakan dokumentasi dan rujukan yang sangat baik yang boleh anda periksa. Adakah anda menggunakan enjin templat? Apa pendapat anda tentang Twig? Adakah anda membandingkannya dengan alternatif popular seperti Blade atau Smarty? (kandungan berikut adalah FAQ, teks asal telah dimasukkan, ditinggalkan di sini) Atas ialah kandungan terperinci Twig - Enjin Templat PHP yang paling popular. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!bootstrap.php
dengan kandungan berikut: <?php echo "<p> Hello " . $name . "</p>"; ?>
Environment
. Contoh jenis ini digunakan untuk menyimpan konfigurasi, sambungan, dan templat beban dari sistem fail atau lokasi lain. Selepas Boots Contoh Twig kami, kami boleh meneruskan dan membuat fail index.php
di mana ia memuat beberapa data dan meluluskannya ke templat Twig. <p>Hello {{ name }}</p>
render()
, yang menerima nama templat (ini adalah fail dalam folder templat yang kami tentukan sebelumnya) dan data yang kami mahu lulus ke template. Untuk melengkapkan contoh kami, mari pergi ke folder /templates
kami dan buat fail index.html
. Pertama, mari kita lihat templat itu sendiri. composer require twig/twig
index.php
di penyemak imbas anda (lawati localhost atau homestead.app, bergantung pada cara anda menyediakan hos dan pelayan) kini harus memaparkan skrin berikut:
{{ ... }}
digunakan untuk melaksanakan pernyataan seperti pernyataan bersyarat dan gelung. Pembatas ini adalah struktur bahasa utama Twig, yang menggunakan Twig untuk "memaklumkan" templat yang mesti menjadikan elemen ranting. {% ... %}
layout.html
<?php
// 加载我们的自动加载器
require_once __DIR__.'/vendor/autoload.php';
// 指定我们的Twig模板位置
$loader = new Twig_Loader_Filesystem(__DIR__.'/templates');
// 实例化我们的Twig
$twig = new Twig_Environment($loader);
content
boleh melaksanakan blok layout.html
, yang akan dipaparkan di lokasi tersebut. Dengan cara ini, kita boleh menggunakan semula susun atur beberapa kali tanpa menulis semula. Dalam kes ini, fail content
kini kelihatan seperti ini: index.html
<?php
require_once __DIR__.'/bootstrap.php';
// 创建产品列表
$products = [
[
'name' => 'Notebook',
'description' => 'Core i7',
'value' => 800.00,
'date_register' => '2017-06-22',
],
[
'name' => 'Mouse',
'description' => 'Razer',
'value' => 125.00,
'date_register' => '2017-10-25',
],
[
'name' => 'Keyboard',
'description' => 'Mechanical Keyboard',
'value' => 250.00,
'date_register' => '2017-06-23',
],
];
// 渲染我们的视图
echo $twig->render('index.html', ['products' => $products] );
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<title>Twig Example</title>
</head>
<body>
<table> border="1" style="width: 80%;">
<thead>
<tr>
<td>Product</td>
<td>Description</td>
<td>Value</td>
<td>Date</td>
</tr>
</thead>
<tbody>
{% for product in products %}
<tr>
<td>{{ product.name }}</td>
<td>{{ product.description }}</td>
<td>{{ product.value }}</td>
<td>{{ product.date_register|date("m/d/Y") }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</body>
</html>
Environment
bukan sahaja boleh digunakan untuk memuatkan templat. Jika kita lulus menggunakan pilihan cache
direktori yang berkaitan, Twig akan cache templat yang disusun, dengan itu mengelakkan parsing templat dalam permintaan berikutnya. Templat yang disusun akan disimpan dalam direktori yang kami sediakan. Perhatikan bahawa ini adalah cache untuk templat yang disusun, bukan cache untuk templat yang dinilai. Ini bermakna Twig akan mengurai, menyusun dan menyimpan fail templat. Semua permintaan berikutnya masih memerlukan templat penilaian, tetapi langkah pertama sudah dilakukan untuk anda. Mari kita cache templat dalam contoh dengan mengedit fail bootstrap.php
: <?php echo "<p> Hello " . $name . "</p>"; ?>
for
dan memberikan alias kepada setiap elemen dalam array yang ditentukan. Dalam kes ini, kami memberikan alias kepada array products
. Selepas itu, kita boleh menggunakan pengendali product
untuk mengakses semua sifat dalam setiap elemen array. Kami menggunakan tag .
untuk menunjukkan hujung gelung. Kami juga boleh melengkung melalui nombor atau huruf menggunakan pengendali endfor
. Seperti yang ditunjukkan di bawah: ..
<p>Hello {{ name }}</p>
composer require twig/twig
range
asli. Pilihan yang sama berguna ialah menambah syarat ke gelung. Menggunakan keadaan, kita boleh menapis unsur -unsur untuk berulang. Katakan kami ingin melangkah ke atas semua produk dengan nilai kurang daripada 250: range
<?php
// 加载我们的自动加载器
require_once __DIR__.'/vendor/autoload.php';
// 指定我们的Twig模板位置
$loader = new Twig_Loader_Filesystem(__DIR__.'/templates');
// 实例化我们的Twig
$twig = new Twig_Environment($loader);
if
, elseif
dan if not
tag. Sama seperti dalam mana -mana bahasa pengaturcaraan, kita boleh menggunakan tag ini untuk menapis keadaan dalam templat. Katakan dalam contoh kami, kami ingin memaparkan hanya produk dengan nilai di atas 500: else
<?php
require_once __DIR__.'/bootstrap.php';
// 创建产品列表
$products = [
[
'name' => 'Notebook',
'description' => 'Core i7',
'value' => 800.00,
'date_register' => '2017-06-22',
],
[
'name' => 'Mouse',
'description' => 'Razer',
'value' => 125.00,
'date_register' => '2017-10-25',
],
[
'name' => 'Keyboard',
'description' => 'Mechanical Keyboard',
'value' => 250.00,
'date_register' => '2017-06-23',
],
];
// 渲染我们的视图
echo $twig->render('index.html', ['products' => $products] );
date_modify
date
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<title>Twig Example</title>
</head>
<body>
<table> border="1" style="width: 80%;">
<thead>
<tr>
<td>Product</td>
<td>Description</td>
<td>Value</td>
<td>Date</td>
</tr>
</thead>
<tbody>
{% for product in products %}
<tr>
<td>{{ product.name }}</td>
<td>{{ product.description }}</td>
<td>{{ product.value }}</td>
<td>{{ product.date_register|date("m/d/Y") }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</body>
</html>
date
untuk menukar tarikh menggunakan penapis date_modify
. Sebagai contoh, jika kita mahu menambah hari ke tarikh, kita boleh menggunakan yang berikut: <!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<title>Tutorial Example</title>
</head>
<body>
{% block content %}
{% endblock %}
</body>
</html>
Format rentetan yang diberikan dengan menggantikan semua ruang letak. Contohnya: format
{% extends "layout.html" %}
{% block content %}
<table> border="1" style="width: 80%;">
<thead>
<tr>
<td>Product</td>
<td>Description</td>
<td>Value</td>
<td>Date</td>
</tr>
</thead>
<tbody>
{% for product in products %}
<tr>
<td>{{ product.name }}</td>
<td>{{ product.description }}</td>
<td>{{ product.value }}</td>
<td>{{ product.date_register|date("m/d/Y") }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}
striptags
Penapis mengeluarkan tag SGML/XML dan menggantikan ruang bersebelahan dengan ruang: <?php echo "<p> Hello " . $name . "</p>"; ?>
escape
escape
<p>Hello {{ name }}</p>
composer require twig/twig
js
, css
, url
dan html_attr
dasar melarikan diri juga tersedia. Mereka adalah JavaScript, CSS, URI, dan HTML Atribute Context Escape Strings, masing -masing. dump()
. Fungsi ini tidak tersedia secara lalai. Semasa mewujudkan persekitaran ranting, kita perlu menambah lanjutan Twig_Extension_Debug
: <?php
// 加载我们的自动加载器
require_once __DIR__.'/vendor/autoload.php';
// 指定我们的Twig模板位置
$loader = new Twig_Loader_Filesystem(__DIR__.'/templates');
// 实例化我们的Twig
$twig = new Twig_Environment($loader);
dump()
untuk membuang semua maklumat mengenai pembolehubah templat. <?php
require_once __DIR__.'/bootstrap.php';
// 创建产品列表
$products = [
[
'name' => 'Notebook',
'description' => 'Core i7',
'value' => 800.00,
'date_register' => '2017-06-22',
],
[
'name' => 'Mouse',
'description' => 'Razer',
'value' => 125.00,
'date_register' => '2017-10-25',
],
[
'name' => 'Keyboard',
'description' => 'Mechanical Keyboard',
'value' => 250.00,
'date_register' => '2017-06-23',
],
];
// 渲染我们的视图
echo $twig->render('index.html', ['products' => $products] );

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat 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

Alipay Php ...

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Sesi rampasan boleh dicapai melalui langkah -langkah berikut: 1. Dapatkan ID Sesi, 2. Gunakan ID Sesi, 3. Simpan sesi aktif. Kaedah untuk mengelakkan rampasan sesi dalam PHP termasuk: 1. Gunakan fungsi Sesi_Regenerate_ID () untuk menjana semula ID Sesi, 2. Data sesi stor melalui pangkalan data, 3.

Fungsi penghitungan dalam Php8.1 meningkatkan kejelasan dan jenis keselamatan kod dengan menentukan pemalar yang dinamakan. 1) Penghitungan boleh menjadi bilangan bulat, rentetan atau objek, meningkatkan kebolehbacaan kod dan keselamatan jenis. 2) Penghitungan adalah berdasarkan kelas dan menyokong ciri-ciri berorientasikan objek seperti traversal dan refleksi. 3) Penghitungan boleh digunakan untuk perbandingan dan tugasan untuk memastikan keselamatan jenis. 4) Penghitungan menyokong penambahan kaedah untuk melaksanakan logik kompleks. 5) Pemeriksaan jenis dan pengendalian ralat yang ketat boleh mengelakkan kesilapan biasa. 6) Penghitungan mengurangkan nilai sihir dan meningkatkan keupayaan, tetapi memberi perhatian kepada pengoptimuman prestasi.

Penerapan prinsip pepejal dalam pembangunan PHP termasuk: 1. Prinsip Tanggungjawab Tunggal (SRP): Setiap kelas bertanggungjawab untuk hanya satu fungsi. 2. Prinsip Terbuka dan Tutup (OCP): Perubahan dicapai melalui lanjutan dan bukannya pengubahsuaian. 3. Prinsip Penggantian Lisch (LSP): Subkelas boleh menggantikan kelas asas tanpa menjejaskan ketepatan program. 4. Prinsip Pengasingan Antara Muka (ISP): Gunakan antara muka halus untuk mengelakkan kebergantungan dan kaedah yang tidak digunakan. 5. Prinsip Inversi Ketergantungan (DIP): Modul peringkat tinggi dan rendah bergantung kepada abstraksi dan dilaksanakan melalui suntikan ketergantungan.

Bagaimana cara debug mod CLI dalam phpstorm? Semasa membangun dengan PHPStorm, kadang -kadang kita perlu debug PHP dalam mod Interface Line Command (CLI) ...

Menghantar data JSON menggunakan perpustakaan Curl PHP dalam pembangunan PHP, sering kali perlu berinteraksi dengan API luaran. Salah satu cara biasa ialah menggunakan perpustakaan curl untuk menghantar post ...

Mengikat statik (statik: :) Melaksanakan pengikatan statik lewat (LSB) dalam PHP, yang membolehkan kelas panggilan dirujuk dalam konteks statik dan bukannya menentukan kelas. 1) Proses parsing dilakukan pada masa runtime, 2) Cari kelas panggilan dalam hubungan warisan, 3) ia boleh membawa overhead prestasi.
