我想簡單地使用位於/library/my/view/helpers/friends.php
zend框架找不到幫手視圖文件。獲取「按名稱插件未找到」的錯誤
自定義視圖助手我有這樣的application.ini
:
resources.view.helperPath.My_View_Helper = "/my/view/helpers"
這是輔助類:
class My_View_Helper_Friends extends Zend_View_Helper_Abstract {
public function friends() {
$str = "hello world";
return $str;
}
}
這是在視圖文件:
<?php echo $this->friends(); ?>
我在這條線得到一個錯誤說,它不能找到它已經在路徑插件
錯誤:
Plugin by name 'Friends' was not found in the registry; used paths: My_View_Helper_: /My/View/Helpers/ Zend_View_Helper_: Zend/View/Helper/;C:/http/xampplite/htdocs/zf-tutorial/application/views\helpers/
看起來像使用正確的路徑和其該文件在那裏。我不明白爲什麼找不到它?
我一直不得不使用'$ this-> helper()'使它工作。另外我的視圖助手都是'Zend_View_Helper_MyHelper'(也許嘗試重命名),儘管我沒有把它們放在庫中,我把它們放在'/ views/helpers'中以保持簡單。你沒有提到你是否將'autoloaderNamespaces [] = MY_'添加到你的application.ini中。不知道這是否是一個因素。 – RockyFord 2012-03-31 07:03:47
@RockyFord這可能是因爲你命名了你的類'Zend_View_Helper_XXX'(如果我正確地讀了它),你總是必須使用'$ this-> helper()'。只有正式屬於ZF的類應該以'Zend_'或'ZendX_'爲前綴(參見[ZF命名約定](http://framework.zend.com/manual/en/coding-standard.naming-conventions.html)) 。它可能與自動加載器在Zend目錄中查找助手類有關。 – drew010 2012-03-31 07:15:00
@ drew010我應該說'$ this-> MyHelper()'用'Zend_View_Helper_XXX'作爲前綴是默認值。所以我不必註冊一個新的幫手路徑。它們存儲在我的任何'/ views/helpers'目錄中。有一天,當我清理應用程序時,我會把它們放在一個地方。此外,這個問題自我發佈以來已經清理完畢,所以我的帖子讓我感覺不太敏感:) – RockyFord 2012-03-31 09:28:25