Загрузка классов с пространством имен с помощью автозапуска Symfony 1.4?
Как зарегистрировать пространства имен (с PHP 5.3) в Symfony 1.4 для функции класса autoloader (например,Symfony 2.0)?
3 ответов
вы можете использовать автозапуск из Symfony2 в Symfony 1.4 framework.
1. Скопируйте загрузчики классов Symfony2 в каталог поставщиков вашего проекта Symfony 1.4 sandbox:
SF_ROOT_DIR/lib/vendor/Symfony2/src/Symfony/Component/ClassLoader / UniversalClassLoader.в PHP
SF_ROOT_DIR/lib/vendor/Symfony2/src/Symfony/Component/ClassLoader / ApcUniversalClassLoader.в PHP
2. Изменить SF_ROOT_DIR/config / ProjectConfiguration.класс.php-файл выглядит следующим образом:
require_once dirname(__FILE__) . '/../lib/vendor/symfony/lib/autoload/sfCoreAutoload.class.php';
require_once dirname(__FILE__) . '/../lib/autoload/sfClassLoader.class.php';
sfCoreAutoload::register();
class ProjectConfiguration extends sfProjectConfiguration {
public function setup() {
$this->namespacesClassLoader();
$this->enablePlugins('sfDoctrinePlugin');
}
public function namespacesClassLoader() {
if (extension_loaded('apc')) {
$loader = new ApcUniversalClassLoader('S2A');
} else {
$loader = new UniversalClassLoader();
}
$loader->registerNamespaces(array(
'Pohon' => __DIR__ . '/../lib/vendor/Pohon/src'));
$loader->register();
}
}
3. Зарегистрируйте желаемые пространства имен:
например. Я хочу загрузить класс:
Pohon\Tools\String\Utils\Slugify.
имя файла должно быть:
SF_ROOT_DIR/Либ/поставщика/пляж похон/ГРЦ/пляж похон/средства/строки/утилиты/служивым.в PHP
и зарегистрированное пространство имен следующим образом:
Pohon => SF_ROOT_DIR/lib/vendor/Pohon / src
можно использовать композитор и это очень легко. Просто установите его на свой компьютер (вы, вероятно, уже с 2015 года) и запустите в папке проекта:
composer init
затем вы можете установить все пакеты, которые вы хотите с composer и включить только эту строку в свой ProjectConfiguration.class.php
:
require_once __DIR__.'/../vendor/autoload.php';
обратите внимание, что пути могут отличаться, если вы изменили Symfony1 по умолчанию.4 структура каталогов.
Symfony использует spl_autoload_register()
функция для регистрации собственного автопогрузчика (sfAutoload
).
вы можете зарегистрировать свой собственный обработчик в