2013-01-18 33 views
5

Cách tạo ViewHelper trong Symfony 2. Tôi đọc toàn bộ tài liệu nhưng nó không mô tả bất kỳ thuật ngữ nào như thế. Nó chỉ có tự động tải và dịch vụ. http://symfony.com/doc/current/cookbook/index.htmlTạo ViewHelper trong Symfony 2

+1

Ý 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

+0

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

+0

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

Trả lời

3

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();