0

我把我所有的课程都放在“fuel/app/classes/”文件夹中,以便简单地调用MyClass::MyMethod()

使用给定的“命名空间库”开始将类存储在“fuel/app/classes/lib/”中。

调用lib\MyClass::MyMethod()或规定“使用 lib”比建议的要舒服得多,Folder_MyClass::MyMethod()请参阅http://docs.fuelphp.com/general/classes.html

有没有办法在“bootstrap.php”中加载特定的命名空间,不必在文件(控制器、模型)的开头写任何“use lib”,或者不必每次都添加像“lib\ “?

4

2 回答 2

1

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

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

您可以将此类定义为:

class Some_Sub_System_Name_Myclass {}

但也作为

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

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

于 2012-11-21T17:30:10.023 回答
0

您可能可以添加lib为核心命名空间。在bootstrap.phpAutoloader::add_core_namespace('lib');

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

然后,您应该能够使用\MyClass::MyMethod();而不必在名称空间前加上前缀或不必Use lib;

于 2012-10-01T12:05:49.920 回答