如何在我的域中包含Zend Framework库?

时间:2010-03-10 03:34:37

标签: php zend-framework include-path

在我的xampp安装本地,Zend文件夹位于PEAR \ Zend下,Pear位于include路径中。所以当我执行require_once“Zend \ Date.php”时没有问题。

然而,在我的域名(Hostmonster)上,情况并非如此。我不知道Zend文件夹在哪里,虽然做phpinfo();似乎表明Zend Framework绝对可用。我问主持人,他们告诉我在php.ini文件的底部包含zend_extension =“/ usr / local / Zend / lib / Optimizer-3.3.9 / php-5.2.x / ZendOptimizer.so”没有任何帮助。

另外,我不知道php.ini文件中的那个语句是什么。有人可以帮忙吗?

3 个答案:

答案 0 :(得分:2)

也许您可以将Zend库上传到/ home / your_account / public_html / zend等目录中的共享主机帐户。

然后在webroot目录/ home / your_account / public_html中修改(或创建,如果它不存在)php.ini文件。添加以下内容:

include_path = .:/home/your_account/public_html/Zend

注意:这将覆盖PHP设置的任何默认包含路径。 .代表当前目录,:分隔不同的路径。

现在在PHP文件中,您可以在顶部添加:

require_once 'Zend/Date.php';

答案 1 :(得分:2)

如上所述启用Zend扩展与包含您要执行的ZF类无关。下载ZF并将其上传到public_html文件夹中的任何位置(如果在某处尚未提供)。使用set_include_path()然后去!示例代码如下:

<?php
    // Define relative path to ZendFramework in public_html
    define('ZF_PATH', '/../../../lib/php/zendframework');

    // Define path to application directory
    defined('APPLICATION_PATH') || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));

    // Define real path to ZendFramework if it's not yet included in include_path
    if(!strpos(get_include_path(), 'zendframework'))
        define('ZF_REAL_PATH', realpath(APPLICATION_PATH . ZF_PATH));
    else define('ZF_REAL_PATH', '');

    // Updating include_path
    set_include_path(implode(PATH_SEPARATOR, array(ZF_REAL_PATH, get_include_path(),)));

    // Done! the rest of the code might be unnecessary in your case.
    require 'Zend/Application.php'; 

    // Create application, bootstrap, and run
    $application = new Zend_Application(APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini');
    $application->bootstrap()->run();

对于添加目录以包含路径的情况,这似乎有点复杂,但我认为这是ZF应用最常用的方式。

答案 2 :(得分:0)

zend自动加载器让生活更轻松:

set_include_path(get_include_path().PATH_SEPARATOR.realpath('../path to folder containing zend classes'));
require_once('Zend/Loader.php');
require_once('Zend/Loader/Autoloader.php');
Zend_Loader::registerAutoload();

现在您不需要包含数十种内容或需要使代码混乱...... 至于Zend:至少1.11.1