我在网站上实现Zend Framework时遇到问题。它不是一个花哨的应用程序,只是使用Zend的一些验证类和Zend_File_Transfer_Adapter_Http将文件上传到服务器。 他们都没有工作。问题是:我已经读过我应该编写一个htaccess文件来指示站点的文件夹结构,并且还应该启用mod_rewrite。我不知道如何检查mod_rewrite,因为我的提供者的控制面板非常缺乏信息。
无论如何,我认为像这样包含Zend库就足够了:
$libreria = $_SERVER['DOCUMENT_ROOT'];
$libreria.='Zend/ZendFramework/library';
set_include_path(get_include_path().PATH_SEPARATOR.$libreria);
require_once('Zend/Loader/Autoloader.php');
Zend_Loader_Autoloader::getInstance();
但显然事实并非如此。所以我的另一个问题是:¿我应该以不同的方式实例化Autoloader,我应该指定像$loader = Zend_Loader_Autoloader::getInstance(); $loader->registerNamespace(something);
这样的命名空间我不这么认为,因为我说我只是想包含验证类和文件将课程上传到网页。
最后,我在一些脚本上设置了类PHPMailer来处理用户输入,每当我看起来正确包含Zend Framework的路径时,该页面就会抛出500内部服务器错误,而如果我写的话就不会发生这种情况。路径不正确(这是另一个问题,我想如果我设置相对于文档的路径它不起作用,例如做$libreria='Zend/ZendFramework/library';
将无法工作,因为我看到我设置的所有条件用于验证无论我写什么,输入都会失败。
然后最后一个问题是:PHPMailer与Zend Framework有什么不兼容吗?不好意思,但我是新手,虽然我已经检查了PHPMailer类,但没有找到任何不兼容的东西,我必须问。
如果有人愿意提供帮助,请提前致谢
我还应该补充一点,我已经在本地服务器上测试了这个网站,它运行正常,问题出在远程服务器上。
另外,我已经阅读了这个article here,这就是我正在寻找的东西,根据它,我应该能够使用new运算符引用Zend的标准类。但是在远程服务器上我不能这样做,只能在本地。
再多搜索一下,我已经了解了Zend安装失败的可能原因here on this same site,这使我能够澄清我的问题:首先,我认为这些条件都不会失败,尽管我是说我无法在我的提供者的远程服务器上检查mod_rewrite,其次,我的htaccess文件是空的,因此没有重定向规则(这应该抛弃Zend Framework与错误的htaccess交互的问题,如果我是正确的我错误),第三,我没有访问php.ini文件。那我该怎么办?任何建议都被接受了,因为我整个上午一直在努力解决这个问题。无法找出问题所在。
答案 0 :(得分:1)
您必须区分Zend Framework作为MVC应用程序和独立库。你所追求的是独立的库,不幸的是很多文档都是关于ZF作为MVC应用程序。启动MVC应用程序需要htaccess。
对于ZF作为独立库,您基本上只需要一件事:正确的路径。如果你愿意,你可以添加自动加载器,但是对于ZF 1.x,这不是必需的,因为你已经有了所有的require_once。
现在您只需测试您的路径是否正常工作。如果您的require_once('Zend/Loader/Autoloader.php');
语句没有抛出错误,那么基本上都是因为include路径会扩展require_once语句中的路径。
对于Autoloader。如果这没有显示错误,您也应该在这里设置。但是,您可能与主应用程序存在冲突。在Zend_Loader_Autoloader之后,您应该能够实例化Zend类。尝试在下一行加载一个验证器。如果它可以工作,但在你的应用程序中没有,你可能在该应用程序中有一个覆盖Zend加载器的其他自动加载器。