в основном, у меня есть следующая проблема: я хочу использовать новые возможности пространства имен PHP. К сожалению, я запускаю PHP-версию (5.3.2), в которой поддержка пространства имен для autoload для linux по-прежнему кажется ошибочной и не работает (PHP должен иметь возможность автоматически загружать файл класса по своему пространству имен без необходимости использования пользовательского автозагрузчик, но это […]
spl_autoload_register('Think\Think::autoload'); В пространстве имен Think \ я создал указанную выше регистрационную функцию, когда я пытаюсь использовать класс, который не был включен как класс Storeage, php будет чересчур пропускать Storeage в качестве переменной для функции Think \ Think :: autoload, но она фактически передала Think \ Храните как переменную, почему она добавляет дополнительный Think \ к […]
Поэтому я уже задал этот вопрос здесь ранее, но предоставленные решения не сработали для меня. Вот моя настройка: /mylib /Vendor/Module/MyClass.php /document_root index.php Вот мой index.php <?php define('CLASSDIR', 'mylib'); define('BASEPATH', @realpath( dirname (__FILE__).'/../').'/'.CLASSDIR); spl_autoload_register(null, false); spl_autoload_extensions('.php'); function autoLoader($className){ $className = ltrim($className, '\\'); $fileName = ''; $namespace = ''; if ($lastNsPos = strrpos($className, '\\')) { echo 'does […]
У меня проблема с загрузкой классов с помощью spl_autoload_register когда пространство имен реализовано в классе. autoloader класса ниже, но у меня нет проблем с загрузкой какого-либо класса, когда пространство имен не используется, class autoloader { /** * Set the property. */ public $directory; public $recursive; /** * Receive the supplied data. * @string $directory * […]
spl_autoload_register может выполнять такую работу, но я не понимаю, как это делается? spl_autoload_register(array('Doctrine', 'autoload'));
Я работаю над разработкой пользовательской структуры. И я столкнулся с проблемой, когда попытался динамизировать вызов моих классов. Это изображение моих файлов: Поэтому я решил создать другую функцию для каждой папки (libs, controllers et modelses): function autoloadLibs($class) { //require the general classes require 'libs/' . $class . '.php'; } function autoloadModels($class) { //require the models classes […]
class Manage { spl_autoload_register(function($class) { include $class . '.class.php'; }); } Скажем, у меня есть такой код, как выше. Я решил использовать метод анонимной функции для загрузки классов, но как это используется? Как именно он определяет, какой '$class' загружать?
Я на самом деле пытаюсь создать структуру MVC для себя, однако у меня возникают проблемы с Autoload. Это не проблема на самом деле, но я хотел бы спросить гуру, как они используют функцию spl_autoload_register когда есть разные каталоги. Допустим, у нас есть следующие каталоги: Controllers Libs Models Каждая папка содержит разные классы, например: Controllers: Main.php […]
Я использую PHP 7.1.11 Ниже приведен текст руководства PHP относительно классов автозагрузки: Функция spl_autoload_register () регистрирует любое количество автозагрузчиков, позволяя автоматически загружать классы и интерфейсы, если они в настоящее время не определены. Регистрируя автозагрузчики, PHP получает последний шанс загрузить класс или интерфейс до сбоя с ошибкой. Я не могу понять, как функция spl_autoload_register () позволяет […]
У меня была небольшая проблема с автозагрузкой в моем пространстве имен. Как показано в руководстве по PHP здесь: http://us.php.net/manual/en/language.namespaces.rules.php, вы должны иметь возможность автозагружать функции пространства имен с полным квалифицированным именем, например \ glue \ common \ is_email ( ). У меня есть функция spl_autoload_register (массив ($ import, "load")); в начальном пространстве имен, но всякий […]