2009-08-08 54 views
1

我想使用Zend的Gbase庫,但我不知道如何在沒有實際安裝它的PHP路徑中這樣做。使用Zend Framework而不是將它安裝在服務器根目錄下?

併發症來自於想爲Drupal創建一個模塊,它不受服務器的約束,但可以通過安裝在模塊的子文件夾中來訪問該庫。

有誰知道如何做到這一點?我試着做一個包括Zend的Loader,然後加載我想要的類,但是這會一直拋出錯誤。我是否需要在服務器上安裝庫,或者有辦法解決這個問題,只能在此應用程序上使用它?

這是代碼:

 

require_once 'library/Zend/Loader.php'; 
Zend_Loader::loadClass('Zend_Gdata_Gbase'); 

我得到如下因素的消息:

警告:那麼Zend_Loader ::包括(的Zend/GDATA/Gbase.php)的zend-loader.include]:無法打開流:沒有這樣的文件或目錄在線83上的/srv/www/ftp-www/tests/gdata/library/Zend/Loader.php

警告:Zend_Loader :: include()[function.include] :在/ srv/www/ftp-www/tests/gdat中打開包含(include_path ='。:/ usr/share/php:/ usr/share/pear')的'Zend/Gdata/Gbase.php'失敗a/library/Zend/Loader.php on line 83

警告:Zend_Loader :: require_once(Zend/Exception.php)[zend-loader.require-once]:未能打開流:沒有這樣的文件或目錄/srv/www/ftp-www/tests/gdata/library/Zend/Loader.php on line 87

致命錯誤:Zend_Loader :: require_once()[function.require]:無法打開所需的'Zend/Exception。 php'(include_path ='。:/ usr/share/php:/ usr/share/pear')在/srv/www/ftp-www/tests/gdata/library/Zend/Loader.php在線87

回答

6

如何使用set_include_path來配置您的include_path,並在其中添加Zend Framework代碼的目錄?

這樣,您可以隨心所欲地使用它 - 無需修改php.ini配置文件中的include_path

舉例來說,這樣的事情可能會做:

$path = '/PATH_TO_THE_FRAMEWORK/'; 
set_include_path(get_include_path() . PATH_SEPARATOR . $path); 

這樣不是幫助?

+0

Zend的建議設置路徑,以便ZF路徑是在開始。因爲它需要更少的時間來找到類。大部分課程都來自ZF,少數是您自己的... – 2009-08-09 07:40:54

+0

謝謝。這似乎奏效了。只需將「庫」添加到zend_loader函數是不夠的。非常感激。 我會投你的答案,但我沒有足夠的'名譽' – msumme 2009-08-11 00:30:00

+0

不客氣:-)(不要擔心代表事情;如果答案解決了你的問題,你應該能夠標記爲「已接受」 - 儘管如此,您只能在每個問題的答案上做到這一點;所以,明智地選擇^^) – 2009-08-11 04:08:15

2

您需要指定在哪裏查找類文件。嘗試:

Zend_Loader::loadClass('Zend_Gdata_Gbase', 'library/') 

或者你可能要設置在你的PHP庫文件夾包含路徑