是否有另一种方法可以调用Zend的Framework Autoloader。我有这个网页,我加载Zend_Loader_Autoloader,然后调用静态方法:: getInstance()。 在弄清楚为什么我的脚本不起作用之后遇到了很多麻烦,我设置了这样的测试:
<?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";
哪个输出“错误al cargarlalibrería”。
我还实现了脚本installlationchecker.php,我在其中添加了前一代码的前两行,并且在姐妹文件夹上安装了Zend Framework到公共文件夹,安装测试通过。
但我的问题是,我可以将Autoloader称为对象,比如说:
$libload = New Zend_Loader_Autoloader();
$libload->getInstance();
Zend Framework的文档中似乎没有关于这种替代语法的内容。
我打算这样做,因为库不会在我需要的几个脚本上加载,这只发生在远程服务器上,在我的测试服务器上运行正常。我做了这样的测试:
include ('header.php');
//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!');
echo ('<div class="cuerpo"><div class="mensajes">');
if(isset($_POST['autoresArt'])&&isset($_POST['tituloArt'])&&isset($_POST['correoArt'])&&isset($_POST['descArt'])) {
require_once('libreria.php');
查看我的脚本(在Windows上开发)和Linux服务器中的脚本是否存在大写问题,但似乎没有问题。
顺便说一句,在要求或包含库之前输出的唯一代码是'header.php',它只是用于显示输出的html文档,还有一些javascript来控制它。
Pd积。对不起,我已经检查过了,正如Matt所说它正在输出库 设置。但是我一直试图让这段代码工作好几天,因为它在远程服务器上失败而不在我的测试服务器上,我猜测Zend Framework库没有被加载。事实上,它不是,就在今天,我将它设置在一个姐妹文件夹中的公共文件夹,并调用测试脚本以确保。
但是,我在脚本中设置的代码无法正常运行,它类似于:
if(isset($_POST['nombreUs'])) {
$nombreUsuario = reemplaza_blancos($_POST['nombreUs']);
$nombreUsuario = trim($nombreUsuario);
$nombreUsuario = mysql_real_escape_string($nombreUsuario);
$validaDos = new Zend_Validate_Regex('/^([[:alpha:]]|[ÁÉÍÓÚÑñáéíóúÄËÏÖÜäëïöü])[[:alpha:]]|[ÁÉÍÓÚÑñáéíóúÄËÏÖÜäëïöü]+\s?([[:alpha:]][ÁÉÍÓÚÑñáéíóúÄËÏÖÜäëïöü])?/');
if(!$validaDos->isValid($nombreUsuario)) {
$errors ['nombre'] = "El nombre no puede contener números";
}
}
然后我检查if(empty($errors))
然后调用并运行PHPMailer类。
让我明白看到这个脚本无法正常运行
答案 0 :(得分:0)
你不能拥有
$libload = New Zend_Loader_Autoloader();
只是因为构造函数被声明为受保护的方法。
protected function __construct()
所以不,你不能。