Может ли Zend_Loader_Autoloader вызываться с объектно-ориентированным синтаксисом?
Есть ли альтернативный способ вызова Zend's 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 cargar la librería".
Я также реализовал сценарий installlationchecker.php, к которому я добавил первые две строки этого предыдущего кода, и, установив Zend Framework из дочерней папки в общую папку, тест установки проходит.
Но мой вопрос, могу ли я назвать автозагрузчик как объект, скажем:
$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 Я сожалею, что проверил это, и, как говорит Мэтт, он выводит, что библиотека установлена. Однако я пытался заставить этот код работать в течение нескольких дней, и, поскольку он не работает на удаленном сервере, а не на моем тестовом сервере, я догадался, что библиотека 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.
Я не могу понять, что этот скрипт просто не работает должным образом
1 ответ
Вы не можете иметь
$libload = New Zend_Loader_Autoloader();
просто потому, что конструктор объявлен как защищенный метод.
protected function __construct()
Так что нет, вы не можете.