Class App

App is responsible for resource location, and path management.

Adding paths

Additional paths for Templates and Plugins are configured with Configure now. See config/app.php for an example. The App.paths.plugins and App.paths.templates variables are used to configure paths for plugins and templates respectively. All class based resources should be mapped using your application's autoloader.

Inspecting loaded paths

You can inspect the currently loaded paths using App::path('Controller') for example to see loaded controller paths.

It is also possible to inspect paths for plugin classes, for instance, to get the path to a plugin's helpers you would call App::path('View/Helper', 'MyPlugin')

Locating plugins

Plugins can be located with App as well. Using Plugin::path('DebugKit') for example, will give you the full path to the DebugKit plugin.

Method Summary

  • _classExistsInBase() protected static
    _classExistsInBase
  • className() public static

    Return the class name namespaced. This method checks if the class is defined on the application/plugin, otherwise try to load from the CakePHP core

  • core() public static
    Returns the full path to a package inside the CakePHP core
  • path() public static
    Used to read information stored path
  • shortName() public static
    Returns the plugin split name of a class

Method Detail

_classExistsInBase()source protected static

_classExistsInBase( string $name , string $namespace )

_classExistsInBase

Test isolation wrapper

Parameters

string $name
Class name.
string $namespace
Namespace.

Returns

boolean

className()source public static

className( string $class , string $type = '' , string $suffix = '' )

Return the class name namespaced. This method checks if the class is defined on the application/plugin, otherwise try to load from the CakePHP core

Parameters

string $class
Class name
string $type optional ''
Type of class
string $suffix optional ''
Class name suffix

Returns

false|string
False if the class is not found or namespaced class name

core()source public static

core( string $type )

Returns the full path to a package inside the CakePHP core

Usage:

App::core('Cache/Engine');

Will return the full path to the cache engines package.

Parameters

string $type
Package type.

Returns

array
Full path to package

path()source public static

path( string $type , string|null $plugin = null )

Used to read information stored path

Usage:

App::path('Plugin');

Will return the configured paths for plugins. This is a simpler way to access the App.paths.plugins configure variable.

App::path('Model/Datasource', 'MyPlugin');

Will return the path for datasources under the 'MyPlugin' plugin.

Parameters

string $type
type of path
string|null $plugin optional null
name of plugin

Returns

array

Link

https://book.cakephp.org/3.0/en/core-libraries/app.html#finding-paths-to-namespaces

shortName()source public static

shortName( string $class , string $type , string $suffix = '' )

Returns the plugin split name of a class

Examples:

App::shortName(
    'SomeVendor\SomePlugin\Controller\Component\TestComponent',
    'Controller/Component',
    'Component'
)

Returns: SomeVendor/SomePlugin.Test

App::shortName(
    'SomeVendor\SomePlugin\Controller\Component\Subfolder\TestComponent',
    'Controller/Component',
    'Component'
)

Returns: SomeVendor/SomePlugin.Subfolder/Test

App::shortName(
    'Cake\Controller\Component\AuthComponent',
    'Controller/Component',
    'Component'
)

Returns: Auth

Parameters

string $class
Class name
string $type
Type of class
string $suffix optional ''
Class name suffix

Returns

string
Plugin split name of class

© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/3.8/class-Cake.Core.App.html