PhalconPHP - регистрация префиксов в загрузчике

1

Я пытаюсь разбить папку lib в несколько папок. Я думал, что префиксы в автозагрузчике должны быть наиболее сбалансированным методом между написанием кода и производительностью. Проблема в том, что мне нужно переименовать каждый файл и каждое имя класса внутри, чтобы соответствовать имени с включенным префиксом.

До:

-app
----lib
-------Class1.php
-------Class2.php
-------Class3.php

После того, как он должен работать:

-app
----lib
--------general
-----------General_Class1.php
-----------General_Class2.php
--------app
-----------App_Class3.php

После того, как я хочу, чтобы это было:

-app
----lib
--------general
-----------Class1.php
-----------Class2.php
--------app
-----------Class3.php

Прямо сейчас, чтобы зарегистрировать эти префиксы, я использую следующий код:

// Register some prefixes
$loader->registerPrefixes(
    array(
        "App_"    => $config->application->libraryDir . "app/",
        "General_"    => $config->application->libraryDir . "general/",
    )
);

$loader->register();

$server = new App_Class3();
echo $server->testMethod('test');

Можно ли вызвать определенные классы, например, App_Class3, но без переименования файла и имени класса внутри (используя метод префиксов или аналогичный)?

  • 0
    Не могли бы вы использовать пространства имен?
  • 0
    Я мог ... И я сделал. Но проблема все еще остается, потому что кто-то, возможно, не захочет использовать пространства имен вместо префиксов.
Теги:
phalcon

1 ответ

1
Лучший ответ

Фаллонный погрузчик может это сделать. Это объясняется в документах Phalcon.

Вы просто регистрируете префиксы в загрузчике, как и пространства имен.

<?php

use Phalcon\Loader;

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

// Register some prefixes
$loader->registerPrefixes(
    array(
        "Example_Base"    => "vendor/example/base/",
        "Example_Adapter" => "vendor/example/adapter/"
    ));

Ещё вопросы

Сообщество Overcoder
Наверх
Меню