如何創建一個站點範圍的函數來獲取基於id的角色或區域。 也可以根據(實際/目標)的計算結果在視圖中返回特定顏色。 我想在視圖和操作中使用它。適用於Zend的Site Wide Class,可用於動作,控制器和視圖?
我都試過了,創建一個類,並在圖書館設置它:
class Colouring
{
/*
* Array of the class for specifically the GEP portal theme
*/
private $colours_class = array(0 => 'color-grey',
1 => 'color-grey',
2 => 'color-orange',
3 => 'color-blue',
4 => 'color-green'
);
/*
* Returns colour based on actual and target
*/
private static function getColour($actual, $target)
{
...return someValue
}
}
路徑:Zend_Site/library/
我得到的錯誤:
Fatal error: Class 'Colouring' not found in
於是我想也許View_Helper是我需要的:
所以我改道路:My/View/Helper/Colouring.php
和Class到:My_View_Helper_Colouring
將此添加到config.ini文件:resources.view.helperPath.My_View_Helper_ = "My/View/Helper/"
我用:
$viewHelperObj = $this->view->getHelper('Colouring');
$viewHelperObj->getColour($this->value, $this->divisor);
給出:Fatal error: Call to a member function getHelper() on a non-object
我也試過:
$this->getColour($this->value, $this->divisor);
這給:
Plugin by name 'GetColour' was not found in the registry
因此,並沒有真正瞭解正確的做法是爲網站範圍內的事物添加靜態方法,甚至不需要站點範圍內的類和註冊方式。我會使用插件,視圖助手,動作助手還是隻能上課。
我使用Zend 1
我需要添加'$視圖 - > addHelperPath;'(APPLICATION_PATH '/ .. /庫/我/瀏覽/助手', 'My_View_Helper'。)在'bootstrap.php'中。但它現在提供'警告:CALL_USER_FUNC_ARRAY()預測參數1是一個有效的回調,不能訪問私有方法MY_VIEW_HELPER_COLOURING :: COLORING()' – surfer190
對不起,錯誤是因爲我沒有改變方法公開 – surfer190