2011-12-23 106 views
1

我試圖建立Zend框架上的獅子,我在在Lion上設置Zend Framework路徑?

/usr/local/zend/share/ZendFramework/library/Zend 

我的PHP的路徑是安裝了 「Zend公司」(php -i | grep include_path):

include_path => .: => .: 

我試圖做的:

<?php 
    set_include_path('ZendFramework-1.10.3-minimal/library/'.get_include_path()); 
    require_once('Zend/Loader.php'); 
    Zend_Loader::registerAutoload(); 
?> 

我在瀏覽器中看到的是:

Warning: require_once(Zend/Loader.php) [function.require-once]: failed to open stream: No such file or directory in /Users/ngoles/Programming/WWW/ApparelDream/appareldream/test.php on line 3 

Fatal error: require_once() [function.require]: Failed opening required 'Zend/Loader.php' (include_path='ZendFramework-1.10.3-minimal/library/.:') in /Users/ngoles/Programming/WWW/ApparelDream/appareldream/test.php on line 3 

正確設置路徑的建議?

+1

您的自動加載方法從ZF 1.8開始已棄用。使用'require_once'Zend/Loader/Autoloader.php'; Zend_Loader_Autoloader :: getInstance();'而是。 – nevvermind 2011-12-24 08:22:35

回答

1

答案是我在這裏看到的評論和答案的組合。這裏是一個簡單的例子,從Zend

// the first two lines should set it up for the Zend library 
require_once 'Zend/Loader/Autoloader.php'; 
$loader = Zend_Loader_Autoloader::getInstance(); 

// these are for custom libraries, two different ways of doing it 
// and NOT necessary if you don't have any custom libraries 
$loader->registerNamespace('Foo_'); 
$loader->registerNamespace(array('Foo_', 'Bar_')); 

這是Zend had to say about it

默認情況下,這將允許加載與「Zend_」或「ZendX_」的類命名空間前綴的任何類,只要他們在您的include_path。

如果您希望使用其他名稱空間前綴,會發生什麼情況?最好也是最簡單的方法是在實例上調用registerNamespace()方法。你可以通過一個單一命名空間的前綴,或者它們的數組:


然後,當然,一定要包括PATH_SEPARATOR分配時不止一個使用set_include_path()路徑,否則將只是連接他們。

這裏是我如何做我的index.php文件。

set_include_path(
    '/usr/local/zend/share/ZendFramework/library' . 
    PATH_SEPARATOR . get_include_path() . 
    PATH_SEPARATOR . '.' 
);