0

私はphpで小さな学校のプロジェクトを書いています。いくつかの情報を pdf 形式で表示し、ファイルをメールで送信する必要がありました。

librairy.here から PDF クラス ファイルを含む PDF フォルダーをコピーした場合、私のフォルダー構造は次のとおりです。

  /
    /lib
      /迅速
        /....
      /Zend
        /PDF
        Pdf.php
    test_file.php
   

これがtest_file.phpの内容です

require_once 'lib/Zend/Pdf.php';
$pdf = new Zend_Pdf();
$pdf->render();

そしてそれはこれを投げています

( ! ) 致命的なエラー: require_once() [function.require]: 必要な 'Zend/Pdf/Page.php' (include_path='.;C:\xampp\php\PEAR;C:\ZendFramework-1.10.8) を開くことができませんでした\bin;') C:\xampp\htdocs\schoolproject\lib\Zend\Pdf.php の 27 行目

しかし、最上位の Zend フォルダーを参照することで、すべてのクラスに含まれていることに気付きました。兄弟クラスの例も含まれます。

require_once 'Zend/Pdf/Page.php';

私はそれに対処する方法について少し混乱しています。自動ロード機能について考えているか、プロジェクトに合わせて必要なパスを手動で修正します (これは面倒です)。

それを回避する最善の方法は何ですか?

これを読んでくれてありがとう。

4

2 に答える 2

2

Zend Framework ライブラリ フォルダーのルートへのインクルード パスを構成する必要があります。

set_include_path(implode(PATH_SEPARATOR, array(
    'c:\ZendFramework-1.10.8\library',
    get_include_path(),
)));

library/Zend は疑似名前空間を使用するため、トップレベル ディレクトリを含める必要があります。library/Zend

Autoloaderを使用することもできます

require_once 'Zend/Loader/Autoloader.php';
Zend_Loader_Autoloader::getInstance();

require_once()クラスをロードするためにファイルを「要求」する必要があるたびに呼び出す必要がなくなります

于 2011-04-10T11:17:37.697 に答える
1

ZF オートローダーを登録する必要があります。その後、クラスを使用するだけで、オートローダーが残りを把握します。

$zf_path = 'PATH/TO/YOUR/LIB/FOLDER';
set_include_path($zf_path.PATH_SEPARATOR.get_include_path());
require_once($zf_path.'/Zend/Loader/Autoloader.php');
$loader = Zend_Loader_Autoloader::getInstance();
$loader->registerNamespace('Zend_');
于 2011-04-10T11:13:59.050 に答える