类 App
App 负责资源定位和路径管理。
添加路径
现在使用 Configure 配置模板和插件的附加路径。请参阅 config/app.php 获取示例。App.paths.plugins
和 App.paths.templates
变量分别用于配置插件和模板的路径。所有基于类的资源应使用应用程序的自动加载器进行映射。
检查已加载的路径
您可以使用 App::classPath('Controller')
等来检查当前加载的路径,以查看加载的控制器路径。
也可以检查插件类的路径,例如,要获取插件帮助器的路径,您可以调用 App::classPath('View/Helper', 'MyPlugin')
定位插件
也可以使用 App 定位插件。例如,使用 Plugin::path('DebugKit') 将会为您提供 DebugKit 插件的完整路径。
方法概要
-
_classExistsInBase() protected static
_classExistsInBase
-
className() public static
返回带命名空间的类名。此方法检查类是否在应用程序/插件中定义,否则尝试从 CakePHP 核心加载
-
classPath() public static
获取应用程序或插件中类类型的路径。
-
core() public static
返回 CakePHP 核心内部包的完整路径
-
path() public static
用于读取存储路径的信息。
-
shortName() public static
返回类的插件拆分名称
方法详情
_classExistsInBase() ¶ protected static
_classExistsInBase(string $name, string $namespace): bool
_classExistsInBase
测试隔离包装器
参数
-
string
$name 类名。
-
string
$namespace 命名空间。
返回值
bool
className() ¶ public static
className(string $class, string $type = '', string $suffix = ''): class-string|null
返回带命名空间的类名。此方法检查类是否在应用程序/插件中定义,否则尝试从 CakePHP 核心加载
参数
-
string
$class 类名
-
string
$type optional 类类型
-
string
$suffix optional 类名后缀
返回值
class-string|null
classPath() ¶ public static
classPath(string $type, string|null $plugin = null): list<string>
获取应用程序或插件中类类型的路径。
示例
App::classPath('Model/Table');
将返回表的路径 - 例如 src/Model/Table/
。
App::classPath('Model/Table', 'My/Plugin');
将返回基于插件的路径。
参数
-
string
$type 包类型。
-
string|null
$plugin optional 插件名称。
返回值
list<string>
core() ¶ public static
core(string $type): list<string>
返回 CakePHP 核心内部包的完整路径
用法
App::core('Cache/Engine');
将返回缓存引擎包的完整路径。
参数
-
string
$type 包类型。
返回值
list<string>
path() ¶ public static
path(string $type, string|null $plugin = null): array<int|string, string>
用于读取存储路径的信息。
当不带 $plugin
参数调用时,它将返回 App.paths.$type
配置的值。
默认类型
- 插件
- 模板
- 语言
示例
App::path('plugins');
将返回 App.paths.plugins
配置的值。
对于插件,它可以用于获取 templates
或 locales
类型的路径。
参数
-
string
$type 路径类型
-
string|null
$plugin optional 插件名称
返回值
array<int|string, string>
链接
shortName() ¶ public static
shortName(string $class, string $type, string $suffix = ''): string
返回类的插件拆分名称
示例
App::shortName(
'SomeVendor\SomePlugin\Controller\Component\TestComponent',
'Controller/Component',
'Component'
)
返回值:SomeVendor/SomePlugin.Test
App::shortName(
'SomeVendor\SomePlugin\Controller\Component\Subfolder\TestComponent',
'Controller/Component',
'Component'
)
返回值:SomeVendor/SomePlugin.Subfolder/Test
App::shortName(
'Cake\Controller\Component\FlashComponent',
'Controller/Component',
'Component'
)
返回值:Flash
参数
-
string
$class 类名
-
string
$type 类类型
-
string
$suffix optional 类名后缀
返回值
string