2012-10-16 80 views
0

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

回答

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! 
+0

真棒,这清除了我很多的困惑,谢谢! 我试过只是自己做Pdf.php,但它试图找到另一个PHP文件包含它,所以我猜我需要使用自动加载器。 – joren

+0

我下载了最新版本,但没有Autoloader.php附带http://i.imgur.com/oGBRL.png,所以我试过了,但仍然没有找到类'Zend_Loader_autoloader': ('/',数组( get_include_path(), 'zend/library/Zend /' ))); require_once'zend/library/Zend/Loader/StandardAutoloader.php'; require_once'zend/library/Zend/Loader/StandardAutoloader.php'; $ autoloader = Zend_Loader_Autoloader :: getInstance();你可以试着弄清楚如何在这里格式化代码:\ – joren

+0

看起来,虽然你(很明显)从ZF 1中获取Zend_Pdf,但是你试图使用ZF中的Zend_Autoloader 2(最新版本),不是吗? )我的建议是关于包含Zend_Pdf的相同版本的框架。你想使用ZF2自动加载机吗? – raina77ow

1

Zend的卫队装载机和Zend装载机是不一样的东西。 Zend Guard是另一个Zend产品,与Zend Framework无关。 Zend Loader是Zend Framework中类加载器的名称。

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