2

ローカルでは、xamppのインストールでは、ZendフォルダーはPEAR \ Zendの下にあり、Pearはインクルードパスにあります。したがって、require_once "Zend \ Date.php"を実行しても、問題はありません。

しかし、私のドメイン(Hostmonster)では、そうではありません。phpinfo()を実行していますが、Zendフォルダーがどこにあるかわかりません。ZendFrameworkが確実に利用可能であることを示しているようです。ホストに尋ねたところ、php.iniファイルの下部にzend_extension = "/ usr / local / Zend / lib / Optimizer-3.3.9 / php-5.2.x/ZendOptimizer.so"を含めるように言われました。まったく役に立たなかった。

また、php.iniファイルのそのステートメントが何をするのかさえわかりません。誰か助けてもらえますか?

4

3 に答える 3

2

おそらく、/home/your_account/public_html/zend のようなディレクトリにある共有ホスティング アカウントに Zend ライブラリをアップロードできます。

次に、webroot ディレクトリ /home/your_account/public_html にある php.ini ファイルを変更 (存在しない場合は作成) します。以下を追加します。

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

注: これは、PHP によって設定されたデフォルトのインクルード パスを上書きします。は現在の.ディレクトリを表し、:さまざまなパスを区切ります。

これで、PHP ファイルの先頭に以下を追加できます。

require_once 'Zend/Date.php';
于 2010-03-10T20:48:56.930 に答える
2

上記のように Zend 拡張機能を有効にすることは、実行したい ZF クラスを含めることとは関係ありません。public_htmlZF をダウンロードし、まだどこにもない場合は、フォルダー内の好きな場所にアップロードします。使っ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 アプリが使用する最も一般的な方法だと思います。

于 2010-03-10T20:57:22.930 に答える
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

于 2015-03-26T17:00:22.490 に答える