Я хотел бы автозагрузить класс, но он объявлен внутри другого имени файла таким образом: AClass.php namespace path\to\A; class AClass {} class AException extends \Exception {} BClass.php namespace path\to\B; use path\to\A\AClass; // I'm actually after AException inside class BClass {} class BException extends AException {} Я не заинтересован в загрузке AClass, но AException. Однако приведенный выше […]
У меня есть каталог моделей в моем проекте, и я хотел бы сохранить классы / файлы там с разными пространствами имен. Пример: models/User.php with classname Model_User models/Table_User.php with classname Model_Table_User Для первого пространства имен у меня есть это в bootstrap.php $resourceLoader->addResourceTypes(array( 'model' => array( 'namespace' => 'Model', 'path' => 'models' ) )); Я не могу […]
Я хочу включить oauth-клиента phpague ( https://github.com/thephpleague/oauth2-client ) в мой проект symfony (1.4), но он использует пространство имен везде, поэтому я рассмотрел обходной путь и придумал использование Symfony2 Universal автозагрузчик вместе с этим фрагментом кода в моем проектеConfiguration.class.php public function namespacesClassLoader() { $loader = new UniversalClassLoader(); $loader->registerNamespaces(array( 'League' => __DIR__ . '/../lib/League', )); $loader->register(); } […]
Я работаю над проектом, и мне становится слишком тяжело … Я объясню. Мне нужно разобрать PDF-файлы с PHP, чтобы проанализировать содержимое этих файлов. Для этого я использую библиотеку pdfparser.org . Сначала я попытался включить эту библиотеку, как обычно, без какого-либо результата. После прочтения всего Интернета, поскольку для этой библиотеки требуется, чтобы Composer был установлен (и […]
Я столкнулся с «странной» вещью, экспериментируя с spl_autoload, пространствами имен и динамическими именами классов. Я использую PHP 5.3.2, вызываю автозагрузку, как это set_include_path(get_include_path().PATH_SEPARATOR."classes".PATH_SEPARATOR."utils"); spl_autoload_extensions(".class.php"); spl_autoload_register(); Теперь к сути. Предложите следующий код: new \User\Student; $name="\User\Student"; new $name(); Это отлично работает, файлы классов / user / student.class.php загружаются успешно, обе конструкции успешны. Однако, немного другое использование: $name="\User\Student"; […]
При попытке выполнить некоторую обработку ошибок, когда моя функция __autoload () не загружает файл, я наткнулся на эту маленькую «странность». Согласно http://nl.php.net/autoload Исключения из функции __autoload () могут быть обнаружены в блоке catch с PHP версии 5.3+. Примечание. До 5.3.0 исключения, брошенные в функцию __autoload, не могли быть пойманы в блоке catch и привели бы […]
У меня есть модель пользователя Eloquent, которая принимает экземпляр класса UserMailer в его конструкторе, но я получаю эту ошибку Argument 1 passed to User::__construct() must be an instance of TrainerCompare\Mailers\UserMailer, none given, called in /var/www/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php on line 631 and defined Я понимаю ошибку, но не могу понять, что я сделал неправильно, но я не очень […]
Это уже некоторое время подталкивает меня, и я не могу понять это. Мой phpinfo сообщает, что PDO установлен, и я могу подключиться к моей базе данных в моем файле index.php. Но когда я пытаюсь открыть PDO-соединение в классе с именами, php пытается использовать мою функцию автозагрузки, чтобы найти PDO.php, который не будет работать. Мой класс […]
Как вы используете _autoload в PHP 5.3 с пространствами имен? У меня есть основная функция автозагрузки в пространстве имен, отдельно от моего скрипта. Я также называю класс с другим пространством имен. (Это не удивительно, но) Это не поиск функции автозагрузки. Должен ли я воссоздать функцию автозагрузки для каждого пространства имен? Это кажется субоптимальным. Заранее благодарю […]
У меня есть следующий код php: index.php <?php spl_autoload_extensions(".php"); spl_autoload_register(); use modules\standard as std; $handler = new std\handler(); $handler->delegate(); ?> модули \ стандартной \ handler.php <?php namespace modules\standard { class handler { function delegate(){ echo 'Hello from delegation!'; } } } ?> В Windows 7, запущенной WAMP, код выдает сообщение «Привет от делегирования!». однако под […]