我试图在没有运气的网站上包含 ZendFramework。最近我尝试修改 .htaccess 文件,如下所示:
php_value include_path ":/home/u230474/Zend"
我也试过
php_value include_path ".:/home/u230474/Zend"
但在每种情况下,我都无法再查看网站中的任何页面。
我做了这些修改,因为我试图让系统理解以下代码:
<?php
$libreria='/Zend/ZendFramework/library';
set_include_path(get_include_path().PATH_SEPARATOR.$libreria);
require_once('Zend/Loader/Autoloader.php');
Zend_Loader_Autoloader::getInstance();
我已经尝试了很多天了,虽然我已经和我的提供者谈过了,但我们似乎在理解需求方面遇到了问题。
我使用名为 InstallationChecker.php 的脚本进行了测试以检查 ZendFramework 的安装,该脚本应该表明安装 Zend Framework 成功,实际上该脚本会引发如下错误:
Exception thrown trying to access Zend/Loader.php using 'use_include_path' = true. Make sure you include Zend Framework in your include_path which currently contains: .:/usr/lib/php:/usr/local/lib/php
这就是我尝试修改 .htaccess 的原因
有谁知道我是否做错了(显然是)?修改 htaccess 文件以便同时包含 `/usr/lib/php 和 /usr/local/lib/php 的正确方法是什么?
此外,我还读到,当您包含 htaccess 时,您还必须在每个包含的子目录中包含一个 .htaccess 文件。我的大部分 php 脚本都直接在公用文件夹中,但我在子目录中也有很多。我应该如何进行?
我按照 Mike 的建议进行了一些更改,并包含了这样的整个自定义路径:
$libreria='Zend/ZendFramework/library/Zend/Loader';
然后我查看了 php.info,它仍然没有显示对 include_path 的任何更改。此外,我注意到我正在运行以检查 ZendFramework 是否安装的测试中的错误告诉我 Zend 文件夹中有一个类 Loader.php,它实际上存在,但仍然没有加载任何内容。
好的,所以我做了几个测试,看看出了什么问题,因为 Zend 框架似乎加载正常。首先,我将此代码添加到设置包含路径的文件“libreria.php”中(显然没问题,因为库已加载)。我这样做了:
$libreria='/home/u230474/public_classes/Zend/ZendFramework/library';
set_include_path(get_include_path().PATH_SEPARATOR.$libreria);
require_once('Zend/Loader/Autoloader.php');
$libload = Zend_Loader_Autoloader::getInstance();
if(!$libload) echo "Librería Zend Framework cargada"; else echo "Error al cargar la librería";
结果,它输出:“Error al cargar la librería”。
我还设置了一个小测试,看看区分大小写是否有问题。在一些有问题的页面上,我在包含标题和库之后立即放置了这段代码:
//codigo para probar equidad de nombre de archivo---------->
$filename = basename($_SERVER['SCRIPT_FILENAME']);
$request = basename($_SERVER['SCRIPT_NAME']);
if($filename != $request)
die('Case of filename and request do not match!');
而且它不会死,所以没关系。(如果我做对了,如果我的文件名略有不同,结果会有所不同,如浏览器地址和服务器所见,但也许我错了)。
然后,我调用 Autoloader.php 类的方式发生了一些问题,但我没有看到与 Zend 对 Autoloader 文档的介绍中的静态方法不同的调用方式,其中显示“Autoloader,基本用法”