Bạn chỉ cần tạo ra một lớp mà thực hiện chức năng helper của bạn và mở rộng
Symfony\Component\Templating\Helper\Helper
như thế này:
namespace Acme\Foo\Helper;
use Symfony\Component\Templating\Helper\Helper;
class MyViewHelper extends Helper {
public function helpMe() {
// do something
return $value;
}
/**
* @inheritdoc
*/
public function getName() {
return "anyCanonicalServiceName";
}
}
Sau đó, bạn có để thúc đẩy helper của bạn như một dịch vụ với một đặc biệt thẻ trong ví dụ
Resources/config/services.yml
services:
your_service_name:
class: Acme\Foo\Helper\MyViewHelper
# the tag alias "myViewHelper" is later used in the view to access your service
tags:
- { name: templating.helper, alias: myViewHelper }
Bây giờ bạn có thể truy cập vào các helper trong một cái nhìn như thế này:
echo $view['myViewHelper']->helpMe();
Nguồn
2014-07-09 09:00:17
Ý anh là gì bởi "Create a ViewHelper"? Nếu bạn muốn thêm các chức năng/bộ lọc tùy chỉnh vào cành cây, hãy đọc http://symfony.com/doc/current/cookbook/templating/twig_extension.html – AdrienBrault
ViewHelper là một cách để gọi hàm trợ giúp trong các khung nhìn (mẫu). Tôi không biết nó được gọi là gì trong Symfony2 nhưng Zend gọi nó là "viewHelper". Nhân tiện, tôi không sử dụng Twig nhưng PHP. – Emerald214
Bạn có thể mở rộng cành để tạo các bộ lọc và chức năng. Vui lòng xem tài liệu chính thức của twig http://twig.sensiolabs.org/doc/advanced.html – Praveesh