Làm cách nào để sử dụng Twig trong PHP?

Drupal cho phép bạn ghi đè tất cả các mẫu được sử dụng để tạo đánh dấu HTML để bạn có thể kiểm soát hoàn toàn đánh dấu đó

Drupal tải các mẫu dựa trên các quy ước đặt tên nhất định. Điều này cho phép bạn ghi đè các mẫu bằng cách thêm chúng vào chủ đề của bạn và đưa ra

Trang này so sánh PHPTemplate với Twig

Khi làm việc với tệp mẫu Twig, hầu hết các biến được ghi lại trong nhận xét cho tệp mẫu. Tuy nhiên, khi họ không, hoặc

Công cụ tạo khuôn mẫu Twig cung cấp một công cụ gỡ lỗi

Công cụ Twig cung cấp các tùy chọn để định cấu hình gỡ lỗi, tự động tải lại [biên dịch lại] các mẫu và lưu các mẫu đã biên dịch vào bộ đệm

Để biết mẫu nào đang tạo đánh dấu cho một phần tử cụ thể, bạn có thể sử dụng tùy chọn gỡ lỗi tích hợp của Twig. tùy chọn này

Bộ lọc trong Twig có thể được sử dụng để sửa đổi các biến. Các bộ lọc được phân tách khỏi biến bằng ký hiệu đường ống. Họ có thể có đối số tùy chọn

Twig cung cấp một số chức năng tiện dụng có thể được sử dụng trực tiếp trong Mẫu

Từ tài liệu chính thức của Twig. "Macro có thể so sánh với các chức năng trong ngôn ngữ lập trình thông thường. Chúng rất hữu ích để đặt thường xuyên

Thực hiện theo các phương pháp hay nhất này để cải thiện hiệu suất theo chủ đề Drupal 8, chuyển đổi lệnh gọi chủ đề Drupal 7 và cho phép tùy chỉnh mẫu Twig nhiều hơn

Ý tưởng chung trong Drupal 8 là bạn muốn tránh tạo html trực tiếp trong mã PHP của mô-đun tùy chỉnh của mình. Bạn muốn điều này đi

Chào mừng đến với thế giới của Twig. Twig là một ngôn ngữ tạo khuôn mẫu cho PHP, đây là một cách nói nhàm chán khi nói rằng đó là một công cụ được sử dụng để xuất các biến bên trong HTML. Nếu một dự án bạn đang thực hiện sử dụng Cành cây, thì bạn thật may mắn. thật dễ học, mạnh mẽ và vui vẻ khi làm việc cùng

Để làm cho điều này trở nên thú vị, hãy xây dựng thứ gì đó hữu ích với Twig như cửa hàng quần áo chim cánh cụt. Trên thực tế, tôi đã bắt đầu. Tôi có một thiết lập trang web nhỏ dưới gốc tài liệu của máy chủ web của tôi và một trang thử nghiệm có tên là





    

getName[] ?>

8

Mẹo

Bạn muốn chạy mã này cục bộ?

Ngay bây giờ, tệp này chuẩn bị một số biến





    

getName[] ?>

1 và




    

getName[] ?>

2 và sau đó bao gồm một tệp khác

// test.php

// setup some variables
$pageTitle = 'Suit Up!';
$products = array[
    new Product['Serious Businessman', 'formal.png'],
    new Product['Penguin Dress', 'dress.png'],
    new Product['Sportstar Penguin', 'sports.png'],
    new Product['Angel Costume', 'angel-costume.png'],
    new Product['Penguin Accessories', 'swatter.png'],
    new Product['Super Cool Penguin', 'super-cool.png'],
];

// render out PHP template
include __DIR__.'/templates/homepage.php';

Tệp





    

getName[] ?>

3 là mẫu thực tế. Nó có tất cả HTML và chúng tôi sử dụng




    

getName[] ?>

4 để lặp qua chúng và sau đó




    

getName[] ?>

5 để in ra một số biến





    

getName[] ?>

Thay vì sử dụng PHP, hãy viết mẫu của chúng ta bằng Twig. Mục tiêu của mẫu vẫn như cũ. để in ra các biến. Điều duy nhất sẽ thay đổi là cú pháp

Trong một tệp riêng, tôi đã thiết lập tất cả các công việc hậu trường để sử dụng Twig. Hãy bắt đầu bằng cách kết xuất một tệp





    

getName[] ?>

6 và một lần nữa chuyển nó sang các biến




    

getName[] ?>

1 và




    

getName[] ?>

2





    

getName[] ?>

1

Nếu bạn tò mò về cách bạn thực sự thiết lập Twig, hãy xem mã tải xuống và xem tài liệu Cài đặt Twig

Nếu bạn là frontend developer thì không cần lo bước này. tất cả những gì bạn cần biết là vị trí của mẫu Twig và những biến nào bạn có quyền truy cập

Trong dự án của chúng tôi, Twig đang tìm kiếm các tệp mẫu trong thư mục





    

getName[] ?>

9, vì vậy hãy tạo




    

getName[] ?>

6 của chúng tôi ở đó

Giống như trong PHP, bạn có thể viết bất cứ thứ gì và nó sẽ chỉ được hiển thị dưới dạng HTML trên trang





    

getName[] ?>

4

Để xem tin nhắn tuyệt vời này, hãy truy cập tệp





    

getName[] ?>

11 trong trình duyệt của bạn. Điều này hoạt động vì chúng tôi đã tạo tệp




    

getName[] ?>

11 hiển thị mẫu




    

getName[] ?>

6. Bất cứ khi nào bạn đang tạo hoặc chỉnh sửa một trang, bạn sẽ cần tìm ra mẫu Twig nào đang được sử dụng cho trang đó. Không có khoa học chính xác về điều này và nó phụ thuộc vào cách ứng dụng của bạn được xây dựng

Hãy nhớ rằng chúng tôi đang chuyển một biến





    

getName[] ?>

1 vào mẫu của chúng tôi. Để hiển thị nó, hãy viết hai dấu ngoặc nhọn mở, tên của biến không có ký hiệu đô la, sau đó là hai dấu ngoặc nhọn đóng





    

getName[] ?>

9

Khi chúng tôi làm mới trang, nó hoạt động. Chúng tôi vừa viết dòng đầu tiên của Cành cây. Bất cứ khi nào bạn muốn in một cái gì đó, chỉ cần mở Twig bằng hai dấu ngoặc nhọn, viết tên biến, sau đó đóng Twig. Một lát nữa chúng ta sẽ trở nên thú vị hơn với một số thứ được gọi là hàm và bộ lọc, nhưng đây là cú pháp cơ bản nhất trong Twig

Tiếp theo, biến





    

getName[] ?>

2 là một mảng mà chúng ta cần lặp qua. Twig đi kèm với thẻ for có thể lặp qua các mục giống như PHP's




    

getName[] ?>

4

Hãy nhớ rằng bất kỳ thứ gì chúng ta nhập ở đây sẽ được in ra trên trang cho đến khi chúng ta "mở" Twig. Lần này, hãy mở Twig bằng cách gõ





    

getName[] ?>

17. Bây giờ chúng ta đang ở trong Cành cây, hãy sử dụng thẻ




    

getName[] ?>

18 để lặp qua




    

getName[] ?>

2.




    

getName[] ?>

40 sẽ là tên biến mà chúng tôi sử dụng cho mỗi mục khi chúng tôi lặp. Đóng Twig bằng cách thêm một




    

getName[] ?>

41 giống hệt. Không giống như khi chúng ta lặp lại biến




    

getName[] ?>

1, thẻ




    

getName[] ?>

18 cần một biến




    

getName[] ?>

44

// test.php

// setup some variables
$pageTitle = 'Suit Up!';
$products = array[
    new Product['Serious Businessman', 'formal.png'],
    new Product['Penguin Dress', 'dress.png'],
    new Product['Sportstar Penguin', 'sports.png'],
    new Product['Angel Costume', 'angel-costume.png'],
    new Product['Penguin Accessories', 'swatter.png'],
    new Product['Super Cool Penguin', 'super-cool.png'],
];

// render out PHP template
include __DIR__.'/templates/homepage.php';
0

Twig sẽ lặp qua từng mục trong





    

getName[] ?>

2 và thực hiện từng dòng trong khoảng từ




    

getName[] ?>

18 đến




    

getName[] ?>

44. Mỗi mục trong




    

getName[] ?>

2 chỉ là một chuỗi, vì vậy hãy in nó ra

// test.php

// setup some variables
$pageTitle = 'Suit Up!';
$products = array[
    new Product['Serious Businessman', 'formal.png'],
    new Product['Penguin Dress', 'dress.png'],
    new Product['Sportstar Penguin', 'sports.png'],
    new Product['Angel Costume', 'angel-costume.png'],
    new Product['Penguin Accessories', 'swatter.png'],
    new Product['Super Cool Penguin', 'super-cool.png'],
];

// render out PHP template
include __DIR__.'/templates/homepage.php';
5

Điều này hoạt động chính xác như trước đây. Chúng tôi có một biến





    

getName[] ?>

40, vì vậy chúng tôi có thể in nó bằng cách đặt nó bên trong hai dấu ngoặc nhọn mở và hai dấu ngoặc nhọn đóng

Và khi chúng tôi làm mới, một Twig thành công khác. Chẳng bao lâu nữa, chúng ta sẽ có những chú chim cánh cụt đang bay

Vậy là chúng ta đã biết cách in một biến và cách lặp qua một biến là mảng hoặc tập hợp. Điều này có vẻ không nhiều, nhưng bạn đã thấy khá nhiều cú pháp của Twig. Để bắt đầu viết mã Twig trong HTML của bạn, chỉ có hai cú pháp khác nhau

Dấu ngoặc kép [





    

getName[] ?>

90] luôn được sử dụng để in một cái gì đó. Nếu bất cứ điều gì bạn cần làm sẽ dẫn đến một thứ gì đó được in ra màn hình, thì bạn sẽ sử dụng cú pháp này. Tôi gọi đây là thẻ "nói điều gì đó", bạn biết đấy, bởi vì đó là cách bạn "nói" trong Twig

Phần trăm cong [





    

getName[] ?>

17] là cú pháp khác mà tôi gọi là cú pháp "làm gì đó". Nó được sử dụng cho những thứ như if và cho các thẻ cũng như những thứ khác "làm" điều gì đó.




    

getName[] ?>

17 thực sự dễ dàng vì chỉ có một số thứ có thể được sử dụng bên trong nó. Nếu bạn truy cập trang web của Twig, nhấp vào Tài liệu và cuộn xuống, bạn có thể thấy danh sách đầy đủ mọi thứ trong Twig. Tiêu đề "thẻ" hiển thị cho bạn mọi thứ có thể được sử dụng bên trong thẻ "làm gì đó", với nhiều chi tiết hơn về cách thức hoạt động của từng thứ này. Điều duy nhất bạn cần lo lắng bây giờ là nếu và vì. Chúng ta sẽ nói về một loạt những điều này sau

Và đó là nó. Sử dụng cú pháp





    

getName[] ?>

90 "nói điều gì đó" để in và




    

getName[] ?>

17 "làm điều gì đó" khi bạn muốn làm một trong những điều trong danh sách này. Đây là hai cú pháp Twig duy nhất và chúng ta sẽ tìm hiểu thêm các công cụ có thể được sử dụng bên trong mỗi cú pháp này

Trên thực tế, chúng tôi đã nói dối một chút. Có một cú pháp thứ ba, được sử dụng để bình luận.





    

getName[] ?>

95. Cũng giống như với cú pháp "nói điều gì đó" và "làm điều gì đó", hãy viết phần mở đầu




    

getName[] ?>

95 và cả phần kết thúc




    

getName[] ?>

97 ở cuối nhận xét của bạn





    

getName[] ?>

5

Mẹo

Chúng tôi sẽ sử dụng cú pháp





    

getName[] ?>

98 trong phần còn lại của hướng dẫn này bất cứ khi nào chúng tôi ẩn một số phần của mẫu Twig

Bên trong Twig, khoảng trắng không thành vấn đề. điều này có nghĩa là chúng tôi có thể thêm hoặc xóa khoảng trắng bất cứ khi nào chúng tôi muốn





    

getName[] ?>

7

Tất nhiên, điều này trông xấu hơn một chút, vì vậy chúng tôi thường chỉ giữ một khoảng cách giữa mọi thứ. Bên ngoài Twig [trong HTML cuối cùng], tất cả khoảng trắng được giữ giống như nó xuất hiện. Có nhiều cách để khiến Twig kiểm soát khoảng trắng trong tệp của bạn, chúng ta sẽ nói về điều này sau

Làm cách nào để sử dụng PHP trong Twig?

Ví dụ đầu tiên về cành cây . '/nhà cung cấp/tự động tải. php'; . '/ mẫu'];

Làm thế nào chúng ta có thể sử dụng Cành cây?

Twig là một công cụ mẫu hiện đại dành cho PHP . Linh hoạt. Twig được cung cấp bởi một trình phân tích cú pháp và từ vựng linh hoạt. Điều này cho phép nhà phát triển xác định các thẻ và bộ lọc tùy chỉnh của riêng mình và tạo DSL của riêng mình. allows Twig to be used as a template language for applications where users may modify the template design. Flexible: Twig is powered by a flexible lexer and parser. This allows the developer to define its own custom tags and filters, and create its own DSL.

Làm cách nào để cài đặt Twig trong PHP?

Bạn có nhiều cách để cài đặt Twig. .
Thiết lập môi trường xây dựng theo tài liệu PHP
Đặt mã nguồn mở rộng C của Twig vào C. \php-sdk\phpdev\vcXX\x86\php-source-directory\ext\twig
Sử dụng lệnh configure --disable-all --enable-cli --enable-twig=shared thay vì bước 14
nmake

Tôi có nên sử dụng Cành cây không?

Nói một cách đơn giản, twig cho phép bạn viết các mẫu hiệu quả hơn bằng cách sử dụng cú pháp khá gần với HTML thuần túy và dễ hiểu cũng như dễ tiếp thu . Nó đơn giản hóa rất nhiều thứ và trông rất giống ria mép nếu bạn quen thuộc với nó.

Chủ Đề