我用骨架ZF2應用從GitHub如何在zend framework2中添加自定義視圖助手?
回答
這裏距離ZF2引用,應該讓你開始的摘錄:
14.4.2。註冊助手 Zend \ View \ Renderer \ PhpRenderer組成一個管理助手的插件代理,特別是一個 Zend \ View \ HelperBroker的實例,該實例擴展了基本插件代理,以便確保我們有有效的助手可用。默認情況下,HelperBroker 使用Zend \ View \ HelperLoader作爲它的幫助器定位器。 HelperLoader是一個基於地圖的加載程序,它意味着您只需簡單地將您希望引用它的幫助程序/插件名稱映射到幫助程序/插件的實際 類名稱。
編程,如下做到這一點:
// $view is an instance of PhpRenderer
$broker = $view->getBroker();
$loader = $broker->getClassLoader();
// Register singly:
$loader->registerPlugin('lowercase', 'My\Helper\LowerCase');
// Register several:
$loader->registerPlugins(array(
'lowercase' => 'My\Helper\LowerCase',
'uppercase' => 'My\Helper\UpperCase',
));
在MVC應用程序,你通常會通過簡單的配置通過地圖0插件類。
// From within a configuration file
return array(
'di' => array('instance' => array(
'Zend\View\HelperLoader' => array('parameters' => array(
'map' => array(
'lowercase' => 'My\Helper\LowerCase',
'uppercase' => 'My\Helper\UpperCase',
),
)),
)),
);
以上可以需要與PhpRenderer註冊助手 每個模塊中進行;但是,請注意,另一個模塊可以使用 具有相同名稱的註冊助手,因此模塊的順序可能會影響 哪些助手類將實際註冊!
14.4.3。編寫自定義幫助程序編寫自定義幫助程序非常簡單。我們建議延長的Zend \查看\助手\ AbstractHelper,但在 最小的,你只需要實現了Zend \查看\助手界面:如果你希望你的助手是能夠被
namespace Zend\View;
interface Helper
{
/**
* Set the View object
*
* @param Renderer $view
* @return Helper
*/
public function setView(Renderer $view);
/**
* Get the View object
*
* @return Renderer
*/
public function getView();
}
就像調用PhpRenderer的 方法一樣調用,你也應該在你的helper中實現一個 __invoke()方法。
如前所述,我們建議延長 的Zend \查看\助手\ AbstractHelper,因爲它實現了助手定義 的方法,讓你在你的發展領先地位。
一旦你定義了你的幫助類,確保你可以自動加載 它,然後註冊它與插件代理。
下面是一個例子幫手,這我們加標題「一個SpecialPurpose」
namespace My\View\Helper;
use Zend\View\Helper\AbstractHelper;
class SpecialPurpose extends AbstractHelper
{
protected $count = 0;
public function __invoke()
{
$this->count++;
$output = sprintf("I have seen 'The Jerk' %d time(s).", $this->count);
return htmlspecialchars($output, ENT_QUOTES, 'UTF-8');
}
}
然後假設,當我們用插件經紀人註冊,我們映射它 字符串「特殊目的」。
在一個視圖腳本,你可以調用SpecialPurpose助手多達 次,只要你喜歡;它將被實例化一次,然後該PhpRenderer實例的生命依然存在 。
// remember, in a view script, $this refers to the Zend_View instance.
echo $this->specialPurpose();
echo $this->specialPurpose();
echo $this->specialPurpose();
輸出會是這個樣子:
我所看到的 '加加' 1周時間(s)。我看過'The Jerk'2次(s)。我 看到「加加」 3時間(s)。
- 1. 如何添加自定義視圖助手到Zend Framework 2
- 2. 如何在zend-framework2中設置自定義視圖
- 3. Zend公司:自定義視圖助手
- 4. 自定義視圖助手VS動作視圖助手Zend框架
- 5. 如何在Zend Framework 2中使用自定義表單視圖助手?
- 6. 在Zend中添加新視圖/ PHTML文件Framework2
- 7. 如何在will_paginate視圖助手中指定自定義字詞?
- 8. Zend Framework創建自定義視圖助手?
- 9. Zend Framework 2自定義視圖助手 - 交叉模塊
- 10. 我如何分配一個自定義助手每個視圖在zend框架
- 11. 將GData添加到Zend Framework2
- 12. 如何在另一個自定義視圖中添加自定義視圖?
- 13. 在ZF2如何在自定義視圖助手逃生HTML
- 14. 如何在Android視圖中添加自定義視圖?
- 15. getView()在zend框架中返回NULL 2自定義窗體視圖助手
- 16. Zend的視圖助手問
- 17. Zend的重定向視圖助手內
- 18. 如何訪問部分中的自定義視圖助手?
- 19. 在自定義助手中使用自定義助手
- 20. 在添加自定義模型時添加自定義視圖
- 21. 在UICollectionView中添加自定義視圖
- 22. Zend的自定義視圖
- 23. 添加表單視圖助手查看
- 24. 如何在助推圖中添加自定義邊緣標籤?
- 25. 如何在自定義助手類中使用Padrino助手
- 26. ZF2自定義視圖助手停止執行
- 27. 如何在zend framework2中定義多選元素?
- 28. 如何在自定義視圖內添加視圖?
- 29. 添加視圖自定義視圖組
- 30. 如何在UITableView的選定行中添加自定義視圖?
謝謝你,它完美 – varan 2012-03-10 14:49:35