Извините за неопределенный заголовок, но я пытаюсь найти несколько альтернатив тому, чтобы вы вызывали класс Autoloader и метод register несколько раз, чтобы сопоставить пути классов, как показано ниже. $ClassLoader = new Autoloader\Loader(__DIR__.'/path/to/someclass'); $ClassLoader->register(); $ClassLoader = new Autoloader\Loader(_DIR__.'/path/to/anotherclass'); $ClassLoader->register(); $ClassLoader = new Autoloader\Loader(__DIR__.'/path/to/anotherclass'); $ClassLoader->register(); $ClassLoader = new Autoloader\Loader(__DIR__.'/path/to/anotherclass'); $ClassLoader->register(); $ClassLoader = new Autoloader\Loader(__DIR__.'/path/to/anotherclass'); $ClassLoader->register(); Это продолжается […]
Я просто начинаю использовать композитор для управления зависимостями, и мне сложно понять, как я не придерживаюсь psr-4 для автозагрузки, поэтому я здесь за советом. У меня есть класс, который генерирует случайные значения, которые уже находятся в пакете. Структура проекта следующая (я назвал файлы composer.json A и B): проект dir |classfile.php A |composer.json |vendor |autoload.php |ejfrancis […]
в основном, у меня есть следующая проблема: я хочу использовать новые возможности пространства имен PHP. К сожалению, я запускаю PHP-версию (5.3.2), в которой поддержка пространства имен для autoload для linux по-прежнему кажется ошибочной и не работает (PHP должен иметь возможность автоматически загружать файл класса по своему пространству имен без необходимости использования пользовательского автозагрузчик, но это […]
У меня проблемы с правильной установкой проекта с помощью композитора. У меня есть собственный пользовательский пакет (библиотека), размещенный в не публичном git-репо (но централизованном), который извлекается композитором (фиктивный проект, содержащий композитор.json для тестирования моего пакета). Таким образом, структура выглядит так: /test/project/composer.json index.php Содержание композитора.json: { "name": "vendor/test", "description": "Test-description", "authors": [{ "name": "Benjamin Carl", "email": […]
Я использую composer для управления моими зависимостями и загрузкой классов. Этот инструмент использует функцию spl_autoload_register . Я хотел бы использовать расширение PHP, которое предоставляет некоторые классы с одинаковым определением (имя, пространство имен, функциональные возможности), чем другие классы, определенные с помощью встроенного композитора . Какой класс загрузит PHP? Номер расширения, или его автозагрузка, или, может быть, […]
У меня есть метод, который выглядит так public function getTime() { $date = new DateTime(); $date->setTimezone(new DateTimeZone('Europe/Paris')); return $date->format('Ymd H:i:s'); } Вызов этого метода из внутреннего файла с функцией автозагрузки function __autoload($class_name) { global $path; if (file_exists($path['classes'] . ds . 'class.'. $class_name . '.php')) { require_once($path['classes'] . ds . 'class.'. $class_name . '.php'); } else […]
У меня есть небольшое приложение Silex. Попытка получить какую-то структуру. Это мой composer.json : { "require": { "silex/silex": "~1.3" }, "autoload": { "psr-0": { "HelloWorld\\Controller": "src/HelloWorld/Controllers" } } } В моем файле web/index.php меня есть это $loader = require_once __DIR__.'/../vendor/autoload.php'; $ctrl = new \HelloWorld\Controller\IndexController(); // <- Doesn't work Мой контроллер IndexController в src/HelloWorld/Controllers namespace HelloWorld\Controller; […]
Я довольно запутался в реализации пространства имен в php, особенно когда речь заходит об алиасах – импорте классов. Я следил за учебником из этого урока: Использование пространств имен PHP V5.3 для читаемого и поддерживаемого кода (от Don Denoncourt, 1 марта 2011 г., для IBM Developerworks) Но я не понимаю – когда используется __autoload , почему […]
spl_autoload_register('Think\Think::autoload'); В пространстве имен Think \ я создал указанную выше регистрационную функцию, когда я пытаюсь использовать класс, который не был включен как класс Storeage, php будет чересчур пропускать Storeage в качестве переменной для функции Think \ Think :: autoload, но она фактически передала Think \ Храните как переменную, почему она добавляет дополнительный Think \ к […]
Я хотел бы использовать стандартный способ PSR-0 для автозагрузки классов без необходимости добавления включений, например, как я могу заменить приведенный ниже код механизмом автозагрузки: namespace Example; use MyLib\Controller; include_once './library/MyLib/Controller/AbstractController.php'; class MyController extends Controller\AbstractController { […] Итак, в приведенном выше примере это показывает, что в каждом контроллере мне нужно включить абстрактный контроллер, который сумасшедший … […]