我将所有课程都放在“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 \”?
答案 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;