0

我正在用 php 编写一个小型学校项目。我需要以 pdf 格式显示一些信息并通过邮件发送文件。

当我从库中复制带有 pdf 类文件的 PDF 文件夹时。这是我的文件夹结构

  /
    /lib
      /迅速
        /....
      /Zend
        /PDF
        pdf文件
    测试文件.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(),
)));

由于 Zend 使用伪名称空间,您需要包含顶级目录library/而不是library/Zend

您可能还想使用自动加载器

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 回答