PhalconPHP: как сделать автозагрузку

Я нашел эту страницу по автозагрузке с PhalconPHP: http://docs.phalconphp.com/en/latest/reference/loader.html

Я понимаю, что мне нужно сделать, чтобы настроить загрузчик. Однако мой вопрос: теперь, когда у меня есть переменная $loader... что мне с ней делать? Есть ли что-то, к чему мне нужно его прикрепить? Я предположил, что нужно добавить его в $di, но в $di, похоже, нет ключа «загрузчика».

// Creates the autoloader
$loader = new \Phalcon\Loader();

//Register some namespaces
$loader->registerNamespaces(
    array(
       "Example\Base"    => "vendor/example/base/",
       "Example\Adapter" => "vendor/example/adapter/",
       "Example"         => "vendor/example/",
    )
);

// register autoloader
$loader->register();

// ***  What goes here?

Спасибо!


person Mr Mikkél    schedule 03.09.2014    source источник
comment
Вы могли бы иметь только "Example" => "vendor/example/" кстати.   -  person jonathancardoso    schedule 08.10.2015


Ответы (2)


// Creates the autoloader
$loader = new \Phalcon\Loader();

//Register some namespaces
$loader->registerNamespaces(
    array(
       "Example\Base"    => "vendor/example/base/",
       "Example\Adapter" => "vendor/example/adapter/",
       "Example"         => "vendor/example/",
    )
);

// register autoloader
$loader->register();

$var = new Example\Base();

Указанные пространства имен и классы будут загружаться автоматически, когда вы захотите их использовать.

person Mohsen Alizadeh    schedule 03.09.2014

Также не забывайте, что если вы используете composer, всегда проще (и часто лучше) придерживаться его автозагрузчика для любых пакетов, специфичных для конкретного поставщика, а также вашего собственного кода, если он следует PSR-0, что и должно быть.

# composer.json
{

    "require": {
        "…": "…"
    },
    "autoload": {
        "psr-0": {
            "": "../src"
        }
    }
}

// Include composer's autoloader in your index.php.

include __DIR__ . '../vendor/autoload.php';
person Ian Bytchek    schedule 04.09.2014
comment
Буду ли я использовать это в дополнение к автозагрузке Phalcon? - person Mr Mikkél; 05.09.2014
comment
Нет. Единственная причина, по которой вы захотите иметь дело с другим автозагрузчиком, если вы используете внешние библиотеки, но не используете Composer, — тогда у вас нет выбора, если только у них нет собственного автозагрузчика (а некоторые из них действительно имеют). Composer отлично справляется с управлением пакетами и автозагрузкой, поэтому подключение другого автозагрузчика к приложению похоже на добавление пятой ноги собаке. - person Ian Bytchek; 05.09.2014