我正在尝试将我的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 :(得分:1)
Phalcon的装载机可以做到这一点。它在Phalcon's docs中解释。
您只需在加载程序中注册前缀,就像命名空间一样。
<?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/"
));