2011-10-06 40 views
0

我在bootstrap.php中Zend的引導動作助手Discrepency

Zend_Controller_Action_HelperBroker::addPath(
     APPLICATION_PATH . '/controllers/actions/helpers', 
     'Default_Controller_Action_Helper' 
    ); 

而且動作助手在該目錄下面的代碼的前綴爲:Default_Controller_Action_Helper_

我的問題是:怎麼來的當我在bootstrap.php中的Default_Controller_Action_Helper前綴的末尾添加下劃線時,所有工作方式都是相同的?沒有有或沒有前綴的bootstrap.php中結束下劃線改變

此代碼工作上面的方法爲同一個,我沒有改變任何東西:

Zend_Controller_Action_HelperBroker::addPath(
     APPLICATION_PATH . '/controllers/actions/helpers', 
     'Default_Controller_Action_Helper_' 
    ); 

任何已知的解釋,這種行爲在所有?

回答

0

),最終將引導你到Zend/Loader/PluginLoader.php和_formatPrefix()。

你會看到這個函數的最後一行是return rtrim($prefix, '_') . '_';,所以你的'_'字符被剝離,如果它在那裏,然後再次添加來處理它被省略的情況,因此你看到的行爲。

爲了真正學習ZF,你必須進入代碼並研究實際發生的事情。

0
$x = rtrim($x, '_') . '_'; 

這是標準化參數的常用方法。另一個例子

$x = substr($x, -1) == '_' ? substr($x, 0, -1) : $x; 

可能有更多的方式如果你的工作方式通過代碼中的Zend /控制器/動作/ HelperBroker.php開始,並在讓addpath看(標準化值