【问题标题】:Getting started with Zend PDF and Zend Guard LoaderZend PDF 和 Zend Guard Loader 入门
【发布时间】:2012-10-06 18:41:51
【问题描述】:

我正在尝试安装 Zend PDF,以便在我客户的共享主机帐户(媒体殿堂)上填写可编辑的 PDF。我现在启用它,在 phpinfo http://i.imgur.com/lDiLk.png 中确认,但在那之后,我找不到我需要开始的东西。如果我尝试加载 Zend_Pdf 类,我会收到“致命错误:找不到类 'Zend_Loader'”消息。

【问题讨论】:

    标签: php zend-framework pdf zend-autoloader


    【解决方案1】:

    这些是非常不同的。 Zend Guard Loader 用于运行由 Zend Guard 编码的 PHP 脚本。并且Zend Loader 组件用于简化开发等。比如这个……

    $pdf = new Zend_Pdf(); // what's Zend_Pdf, people?
    

    ... 语句对 PHP 来说毫无意义,除非它知道 Zend_Pdf 类是什么。值得庆幸的是,在 PHP 中有一种自动导入这些文件的特殊机制 - autoloading。下面是使用 Zend_Loader 的方法:

    set_include_path(
        implode(PATH_SEPARATOR, array(
            get_include_path(),
            PATH_TO_ZF_LIBRARY
        )));
    
    require_once 'Zend/Loader/Autoloader.php';
    $autoloader = Zend_Loader_Autoloader::getInstance();
    ...
    $pdf = new Zend_Pdf(); // no error, as correct file should be imported automatically
    

    实际上,如果只是单个文件会使用 Zend 组件,则不需要使用自动加载机制。一个简单的require_once(没有双关语)就足够了:

    require_once 'Zend\Pdf.php';
    ...
    $pdf = new Zend_Pdf(); // oh, now I know all about Zend_Pdf!
    

    【讨论】:

    • 太棒了,这解决了我的很多困惑,谢谢!我试着自己做 Pdf.php 包含,但是当它试图找到另一个 php 文件来包含它时失败了,所以我猜我需要使用自动加载器。
    • 我下载了最新版本,但没有附带 Autoloader.php i.imgur.com/oGBRL.png 所以我尝试了这个,但最终还是得到了一个 Class 'Zend_Loader_autoloader' not found: set_include_path( implode('/', array( get_include_path(), 'zend/library/Zend/' ))); require_once 'zend/library/Zend/Loader/StandardAutoloader.php'; $autoloader = Zend_Loader_Autoloader::getInstance(); $pdf = new Zend_Pdf(); Ack ,现在想弄清楚如何在这里格式化代码:\
    • 看起来,当您(显然)从 ZF 1 获取 Zend_Pdf 时,您尝试使用 ZF 2(最新版本)的 Zend_Autoloader,不是吗? ) 我的建议是关于包含 Zend_Pdf 的相同版本的框架。你想用 ZF2 自动装弹机吗?
    • AHhhh 我什至没有意识到有两个版本。谢谢!那成功了,我应该可以从这里拿走它。有人在此线程stackoverflow.com/questions/9139787/how-to-fill-pdf-form-in-php 上发布了一个补丁,允许它填写我将使用的可编辑字段。伟大的!再次抱歉格式错误。
    【解决方案2】:

    Zend Guard Loader 和 Zend Loader 不是一回事。 Zend Guard 是另一个 Zend 产品,与 Zend Framework 无关。 Zend Loader 是 Zend Framework 中类加载器的名称。

    确保您的应用程序中有 Zend Framework 的副本,并且您已设置包含路径以指向此位置。

    【讨论】:

      猜你喜欢
      • 2015-08-29
      • 2015-11-11
      • 2014-04-19
      • 2014-10-19
      • 2014-12-02
      • 2014-02-05
      • 2012-09-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多