Dalam proses pembangunan web, menggunakan enjin templat boleh mengurangkan beban kerja pembangunan bahagian hadapan dan juga meningkatkan kebolehselenggaraan aplikasi web. Twig ialah enjin templat PHP popular yang ringkas, mudah dibaca dan sangat berskala. Artikel ini akan memperkenalkan cara menggunakan enjin templat Twig dalam rangka kerja Silex.
Mula-mula, kita perlu memasang Twig menggunakan Composer. Masukkan direktori projek dan laksanakan arahan berikut:
composer require twig/twig
Selepas pemasangan selesai, kami perlu mendaftarkan penyedia perkhidmatan Twig dalam Silex:
// index.php require_once __DIR__.'/vendor/autoload.php'; $app = new SilexApplication(); // 注册Twig服务提供器 $app->register(new SilexProviderTwigServiceProvider(), array( 'twig.path' => __DIR__.'/views', ));
Dalam kod di atas, kami menggunakan register
kaedah untuk memindahkan Twig kepada Pembekal perkhidmatan didaftarkan kepada aplikasi Silex dan menentukan direktori tempat fail templat Twig disimpan.
Terdapat dua konsep yang sangat penting dalam Twig: templat dan pembolehubah. Templat ialah fail yang menerangkan cara untuk memaparkan data dan pembolehubah ialah data yang ingin kami gunakan dalam templat.
Mari buat fail templat mudah:
<!-- views/hello.html.twig --> <!DOCTYPE html> <html> <head> <title>Hello Twig</title> </head> <body> <h1>Hello {{ name }}!</h1> </body> </html>
Kita boleh menggunakan sintaks {{}}
yang disediakan oleh Twig untuk memasukkan pembolehubah, seperti {{ name }}
dalam kod di atas, yang bermaksud bahawa name
Nilai pembolehubah diberikan kepada kedudukan dalam templat.
Seterusnya, kami mencipta laluan dalam Silex yang akan memaparkan fail templat di atas. Kod khusus adalah seperti berikut:
// index.php require_once __DIR__.'/vendor/autoload.php'; $app = new SilexApplication(); $app->register(new SilexProviderTwigServiceProvider(), array( 'twig.path' => __DIR__.'/views', )); // 定义路由 $app->get('/hello/{name}', function ($name) use ($app) { return $app['twig']->render('hello.html.twig', array( 'name' => $name, )); }); $app->run();
Dalam kod di atas, kami menggunakan $app['twig']
untuk mendapatkan contoh Twig, dan menggunakan kaedah render
untuk memaparkan fail templat, sambil menghantar nilai name
berubah kepada templat.
Melawati http://localhost:8000/hello/world akan mendapat output yang serupa dengan yang berikut:
<!DOCTYPE html> <html> <head> <title>Hello Twig</title> </head> <body> <h1>Hello world!</h1> </body> </html>
Twig juga menyokong penggabungan berbilang templat dalam Rendered bersama-sama , ini menjadikannya sangat mudah untuk memisahkan struktur dan kandungan templat. Contohnya, kita boleh mengasingkan bahagian kepala dan bahagian bawah tapak web, menyimpannya sebagai header.html.twig
dan footer.html.twig
masing-masing, kemudian menyarangkannya dalam templat lain.
Mari kita buat fail templat untuk memaparkan catatan blog:
<!-- views/post.html.twig --> {% extends 'layout.html.twig' %} {% block content %} <h1>{{ title }}</h1> <div>{{ content }}</div> <p>Author: {{ author }}</p> {% endblock %}
Dalam templat ini, kami menggunakan arahan {% extends 'layout.html.twig' %}
untuk mewarisi templat lain, menunjukkan bahawa templat Kandungan akan dimasukkan ke dalam blok bernama layout.html.twig
dalam content
.
Seterusnya kami menulis templat layout.html.twig
untuk menentukan susun atur catatan blog:
<!-- views/layout.html.twig --> <!DOCTYPE html> <html> <head> <title>{% block title %}{% endblock %}</title> </head> <body> <header> <h1>My Blog</h1> </header> <main> {% block content %}{% endblock %} </main> <footer> © 2021 Me </footer> </body> </html>
Dalam kod di atas, kami menentukan blok bernama title
, yang disediakan oleh Twig The {% block %}
arahan.
Fokus panggilan kami adalah di {% block content %}{% endblock %}
, kerana apabila menghantar POST, kandungan di sini akan digantikan dengan post.html.twig
dalam <h1>{{ title }}</h1><div>{{ content }}</div><p>Author: {{ author }}</p>
.
Akhir sekali, kami mencipta laluan baharu untuk memaparkan templat post.html.twig
:
$app->get('/post/{id}', function ($id) use ($app) { $post = array( 'title' => 'Post ' . $id, 'content' => 'This is the content of post ' . $id, 'author' => 'Me', ); return $app['twig']->render('post.html.twig', $post); });
Dalam kod di atas, kami mencipta tatasusunan bernama $post
, yang mengandungi Maklumat seperti tajuk, kandungan dan pengarang. Kemudian, gunakan kaedah render
Twig untuk memaparkan templat post.html.twig
sambil menghantar tatasusunan $post
ke templat.
Akhirnya, kita akan melihat output yang serupa dengan yang berikut:
<!DOCTYPE html> <html> <head> <title>Post 1</title> </head> <body> <header> <h1>My Blog</h1> </header> <main> <h1>Post 1</h1> <div>This is the content of post 1</div> <p>Author: Me</p> </main> <footer> © 2021 Me </footer> </body> </html>
Melalui pengenalan artikel ini, kami telah mempelajari cara menggunakan enjin templat Twig dalam Rangka kerja Silex. Menggunakan Twig boleh menjadikan pembangunan web kami berfungsi dengan lebih cekap dan mudah, sambil meningkatkan kebolehselenggaraan kod. Jika anda ingin mengetahui lebih lanjut tentang Twig, anda boleh menyemak dokumentasi rasmi https://twig.symfony.com/doc.
Atas ialah kandungan terperinci Bagaimana untuk menggunakan enjin templat Twig dengan rangka kerja Silex?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!