如何在FuelPHP中组织自己的类?

时间:2012-09-29 12:33:08

标签: php fuelphp

我将所有课程都放在“fuel / app / classes /”文件夹中,只需拨打MyClass::MyMethod()

即可

开始使用给定的“namespace lib”在“fuel / app / classes / lib /”中存储类。

调用lib\MyClass::MyMethod()或处方“使用lib”比提议Folder_MyClass::MyMethod()更舒服,请参阅http://docs.fuelphp.com/general/classes.html

是否有任何方法可以在“bootstrap.php”中加载特定的命名空间,不必在文件的开头写入任何“use lib”(控制器,模型),或者不是每次都要添加来调用“LIB \”?

2 个答案:

答案 0 :(得分:1)

FuelPHP使用级联文件系统来处理不支持名称空间上的类名称段的类。唯一的要求是您的类位于classes文件夹中的某个位置。

例如,假设您有一个名为app / classes / some / sub / system / name / myclass.php的文件。

您可以将此类定义为:

class Some_Sub_System_Name_Myclass {}

但也作为

namespace Some\Sub\System\Name;
class Myclass {}

或介于两者之间的任何事物。常见规则是:将命名空间和类名粘合在一起,将其转换为小写,用DIRECTORY_SEPARATOR替换所有下划线和反斜杠,并在其上粘贴“.php”扩展名,并且您有文件名。

答案 1 :(得分:0)

您可以将lib添加为核心命名空间。在bootstrap.php中: Autoloader::add_core_namespace('lib');

http://docs.fuelphp.com/classes/autoloader.html#/method_add_core_namespace

然后,您应该能够使用\MyClass::MyMethod();,而无需在命名空间前面添加前缀,也不必使用Use lib;