在独立模式下使用Zend_PDF,如何设置land类的include

发布于 2024-10-31 07:19:44 字数 832 浏览 0 评论 0原文

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

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

<前> / /lib /迅速 /.... /禅德 /pdf pdf.php 测试文件.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 文件夹来包含,甚至兄弟姐妹类 ex :

require_once 'Zend/Pdf/Page.php';

我是对于如何处理这个问题有点困惑。我正在考虑自动加载功能或手动更正所需路径以适合我的项目(这将是一个痛苦)。

解决这个问题的最佳方法是什么?

感谢您阅读本文。

I'm writing a tiny school project in php. I needed to display some information in a pdf format and send the file via mail.

When i've copy the PDF folder with the pdf class file from the librairy.here is my folder structure

  /
    /lib
      /Swift
        /....
      /Zend
        /Pdf
        Pdf.php
    test_file.php
   

here is the content of test_file.php

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

and it's throwing this

( ! ) Fatal error: require_once() [function.require]: Failed opening required 'Zend/Pdf/Page.php' (include_path='.;C:\xampp\php\PEAR;C:\ZendFramework-1.10.8\bin;') in C:\xampp\htdocs\schoolproject\lib\Zend\Pdf.php on line 27

but i did notice that all classes includes by referring to the top Zend folder, even siblings classes ex :

require_once 'Zend/Pdf/Page.php';

i'm a little confuse about how to deal with that. I'm think about autoload feature or manually correct the require path to suit my project (which will be a pain).

What's the best way to go around it?

THanks for reading this.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

眼眸里的那抹悲凉 2024-11-07 07:19:44

那么,您需要将包含路径配置为 Zend Framework 库文件夹的根目录。

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

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

您可能还想使用 Autoloader

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

它可以避免您每次需要“要求”a 时调用 require_once()文件加载类

Well, you need to configure your include path to the root of the Zend Framework library folder.

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

As Zend uses pseudo namespaces, you need to include the toplevel directory library/ and not library/Zend

You may also want to use Autoloader

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

It avoids you to call require_once() each time you need to 'require' a file to load a Class

剩一世无双 2024-11-07 07:19:44

您必须注册 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_');

You have to register the ZF autoloader. After that you can just use the classes and the autoloader will figure out the rest.

$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_');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文