Класс App
Класс App отвечает за управление путями, расположением классов и загрузкой классов.
Добавление путей
Вы можете добавить пути в индексы поиска, которые App использует для поиска классов, используя App::build(). Например, добавление дополнительных путей к контроллерам изменит место, где CakePHP ищет контроллеры. Это позволяет разделить ваше приложение по файловой системе.
Пакеты
CakePHP организован вокруг концепции пакетов, каждый класс принадлежит к пакету или папке, где находятся другие классы. Вы можете настроить расположение каждого пакета в вашем приложении, используя App::build('APackage/SubPackage', $paths), чтобы указать фреймворку, где должен загружаться каждый класс. Практически каждый класс фреймворка CakePHP может быть заменён вашей собственной совместимой реализацией. Если вы хотите использовать свой собственный класс вместо классов, предоставляемых фреймворком, просто добавьте класс в папку libs, имитируя расположение каталога, где CakePHP ожидает его найти.
Например, если вы хотите использовать свой собственный класс HttpSocket, поместите его в
app/Network/Http/HttpSocket.php
Просмотр загруженных путей
Вы можете просмотреть текущие загруженные пути, используя App::path('Controller'), например, чтобы увидеть загруженные пути контроллеров.
Также возможно просмотреть пути к классам плагинов, например, чтобы увидеть хелперы плагина, вы должны вызвать App::path('View/Helper', 'MyPlugin')
Поиск плагинов и тем
Плагины и темы также могут быть найдены с помощью App. Например, App::pluginPath('DebugKit') вернёт полный путь к плагину DebugKit. App::themePath('purple') вернёт полный путь к теме purple
Просмотр известных объектов
Вы можете узнать, какие объекты знает App, используя App::objects('Controller'), например, чтобы найти, какие контроллеры приложения App знает.
Ссылка: https://book.cakephp.org/2.0/ru/core-utility-libraries/app.html
Авторские права: Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
Лицензия: Лицензия MIT
Расположение: Cake/Core/App.php
Краткое описание констант
-
string'append' -
string'prepend' -
string'register' -
booleantrue
Краткое описание свойств
- Указывает, нужно ли повторно сохранить кэш класса из-за добавления в него
boolean - Хранит местоположение каждого класса
array - Хранит пары ключ/значение $type => путь к файлу.
array - Указывает, нужно ли повторно сохранить кэш объектов из-за добавления в него
boolean - Хранит массив ключ => значение типов объектов.
array - Хранит шаблоны для каждого настраиваемого пути пакета в приложении
array - Хранит возможные пути для каждого имени пакета
array -
booleanУказывает, что приложение находится в процессе загрузки. Используется для лучшего кеширования загруженных классов, пока библиотеки кэша ещё не инициализированы
- Сопоставляет тип класса старого стиля CakePHP с соответствующим пакетом
array - Возвращать ли загруженный файл.
boolean - Пути для поиска файлов.
array - Список типов объектов и их свойств
array
Краткое описание методов
- Проверить, произошла ли фатальная ошибка, и запустить настроенный обработчик, если он настроен
-
Вспомогательная функция для включения классов. Это обёртка совместимости для использования App::uses() и автоматической загрузки классов
- Вспомогательная функция для включения отдельных файлов
- Вспомогательная функция для загрузки файлов из папок vendors
- Сопоставляет $name с $file.
- Возвращает полный путь к файлу.
- Устанавливает и возвращает шаблоны для каждого настраиваемого пути пакета
-
Настраивает каждое расположение пакета в файловой системе. Можно настроить несколько путей поиска для каждого пакета, которые будут использоваться для поиска файлов по одной папке за раз в указанном порядке. Все пути должны заканчиваться разделителем каталогов
- Возвращает полный путь к пакету внутри ядра CakePHP
-
Ищет классы по $name или конкретным файлам для поиска. Вызов App::import() не будет создавать классы, содержащиеся в файлах. Он будет только находить и вызывать require() файла.
-
Увеличивает значение PHP ini-настройки "memory_limit" на указанную величину в килобайтах
- Инициализирует кэш для App, регистрирует функцию завершения работы.
-
Метод для обработки автоматической загрузки классов. Он будет искать пакет каждого класса, определённый с помощью App::uses(), и с этой информацией он будет разрешать имя пакета в полный путь для загрузки класса. Имя файла для каждого класса должно соответствовать имени класса. Например, если класс называется
MyCustomClass, имя файла должно бытьMyCustomClass.php - Возвращает имя пакета, где был определён класс для расположения
- Возвращает массив объектов заданного типа.
- Используется для чтения информации, хранящейся в пути
-
Получить все загруженные в настоящее время пути из App. Полезно для проверки или хранения всех путей, о которых знает App. Для путей к определённому пакету используйте App::path()
- Получает путь к плагину. Ищет по определённым путям плагинов.
- Деструктор объекта.
- Находит путь к теме. Ищет по определённым путям тем.
-
Объявляет пакет для класса. Это расположение пакета будет использоваться автоматическим загрузчиком классов, если класс будет пытаться использоваться
Подробное описание метода
_checkFatalError()source protected static
_checkFatalError( )
Проверить, произошла ли фатальная ошибка, и запустить настроенный обработчик, если он настроен
_loadClass()source protected static
_loadClass( string $name , string $plugin , string $type , string $originalType , boolean $parent )
Вспомогательная функция для включения классов. Это обёртка совместимости для использования App::uses() и автоматической загрузки классов
Параметры
- строка
$name - уникальное имя файла для идентификации его внутри приложения
- строка
$plugin - имя плагина с использованием верблюжьего случая, если есть
- строка
$type - имя пакета, где расположен класс
- строка
$originalType - имя типа, предоставленное первоначально пользователем
- логическое значение
$parent - нужно ли загрузить родительский класс или нет
Возвращает
booleantrue, если класс был успешно загружен и существует
_loadFile()source protected static
_loadFile( string $name , string $plugin , array $search , string $file , boolean $return )
Вспомогательная функция для включения отдельных файлов
Параметры
- строка
$name - уникальное имя файла для идентификации его внутри приложения
- строка
$plugin - имя плагина с использованием верблюжьего случая, если есть
- массив
$search - список путей для поиска файла
- строка
$file - имя файла, если известно, в противном случае используется параметр $name
- логическое значение
$return - нужно ли возвращать содержимое файла после его обработки php или только уведомление об успехе
Возвращает
mixedесли $return содержимое файла после обработки php, в противном случае boolean, указывающий на успех
_loadVendor()source protected static
_loadVendor( string $name , string $plugin , string $file , string $ext )
Вспомогательная функция для загрузки файлов из папок vendors
Параметры
- строка
$name - уникальное имя файла для идентификации его внутри приложения
- строка
$plugin - имя плагина с использованием верблюжьего случая, если есть
- строка
$file - имя файла, если известно
- строка
$ext - расширение файла, если известно
Возвращает
booleantrue, если файл был загружен успешно, иначе false
_map()source protected static
_map( string $file , string $name , string $plugin null )
Сопоставляет $name с $file.
Параметры
- строка
$file - полный путь к файлу
- строка
$name - уникальное имя для этой карты
- строка
$pluginдополнительный null - с использованием верблюжьего случая, если объект из плагина, имя плагина
_mapped()source protected static
_mapped( string $name , string $plugin null )
Возвращает полный путь к файлу.
Параметры
- строка
$name - уникальное имя
- строка
$pluginдополнительный null - с использованием верблюжьего случая, если объект из плагина, имя плагина
Возвращает
mixedпуть к файлу, если найден, иначе false
_packageFormat()source protected static
_packageFormat( )
Устанавливает и возвращает шаблоны для каждого настраиваемого пути пакета
Возвращает
массившаблоны для каждого настраиваемого пути пакета
build()source public static
build( array $paths array() , boolean|string $mode App::PREPEND )
Настраивает расположение каждого пакета на файловой системе. Можно настроить несколько путей поиска для каждого пакета, которые будут использоваться для поиска файлов по одной папке за раз в указанном порядке. Все пути должны завершаться разделителем каталога.
Использование:
App::build(array('Model' => array('/a/full/path/to/models/'))); will setup a new search path for the Model package
App::build(array('Model' => array('/path/to/models/')), App::RESET); will setup the path as the only valid path for searching models
App::build(array('View/Helper' => array('/path/to/helpers/', '/another/path/'))); will setup multiple search paths for helpers
App::build(array('Service' => array('%s' . 'Service' . DS)), App::REGISTER); will register new package 'Service'
Если reset установлено в true, все загруженные плагины будут забыты, и их нужно будет загрузить снова.
Параметры
- массив
$pathsнеобязательно array() - ассоциативный массив с именами пакетов в качестве ключей и списком каталогов для новых путей поиска
- boolean|строка
$modeнеобязательно App::PREPEND App::RESET установит пути, App::APPEND добавит пути, App::PREPEND добавит пути в начало (по умолчанию), App::REGISTER зарегистрирует новые пакеты и их пути, %s в пути будет заменён на путь APP.
Ссылка
https://book.cakephp.org/2.0/ru/core-utility-libraries/app.html#App::buildcore()source public static
core( string $type )
Возвращает полный путь к пакету внутри ядра CakePHP
Использование:
App::core('Cache/Engine'); will return the full path to the cache engines package
Параметры
- строка
$type - Тип пакета.
Возвращает
массивполный путь к пакету
Ссылка
https://book.cakephp.org/2.0/ru/core-utility-libraries/app.html#App::coreimport()source public static
import( string|array $type null , string $name null , boolean|array $parent true , array $search array() , string $file null , boolean $return false )
Находит классы на основе $name или определённого файла(ов) для поиска. Вызов App::import() не будет создавать классы, содержащиеся в файлах. Он только найдёт и выполнит require() для файла.
Параметры
- строка|массив
$typeнеобязательно null Тип класса, если передан как строка, или все параметры могут быть переданы как единственный массив в $type.
- строка
$nameнеобязательно null - Имя класса или уникальное имя для файла
- boolean|массив
$parentнеобязательно true boolean true, если должен быть проверен родительский класс, принимает массив key => value ('parent' => $parent, 'file' => $file, 'search' => $search, 'ext' => '$ext'); $ext позволяет установить расширение имени файла на основе Inflector::underscore($name) . ".$ext";
- массив
$searchнеобязательно array() - пути для поиска файлов, array('path 1', 'path 2', 'path 3');
- строка
$fileнеобязательно null - полное имя файла для поиска, включая расширение
- boolean
$returnнеобязательно false Возвратить загруженный файл, файл должен содержать оператор return в нём, чтобы работать: return $variable;
Возвращает
booleantrue, если класс уже в памяти или если файл найден и загружен, false, если нет
Ссылка
https://book.cakephp.org/2.0/ru/core-utility-libraries/app.html#including-files-with-app-importincreaseMemoryLimit()source public static
increaseMemoryLimit( string $additionalKb )
Увеличивает настройку ini PHP "memory_limit" на указанную величину в килобайтах
Параметры
- строка
$additionalKb - Число в килобайтах
init()source public static
init( )
Инициализирует кэш для App, регистрирует функцию завершения работы.
load()source public static
load( string $className )
Метод для обработки автоматической загрузки классов. Он будет искать пакет каждого класса, определённый с помощью App::uses(), и с этой информацией он будет разрешать имя пакета в полный путь для загрузки класса. Имя файла для каждого класса должно соответствовать имени класса. Например, если класс называется MyCustomClass имя файла должно быть MyCustomClass.php
Параметры
- строка
$className - имя класса для загрузки
Возвращает
booleanlocation()source public static
location( string $className )
Возвращает имя пакета, где был определён класс
Параметры
- строка
$className - имя класса для получения имени пакета
Возвращает
строка|nullИмя пакета или null, если не объявлено
Ссылка
https://book.cakephp.org/2.0/ru/core-utility-libraries/app.html#App::locationobjects()source public static
objects( string $type , string|array $path null , boolean $cache true )
Возвращает массив объектов заданного типа.
Пример использования:
App::objects('plugin'); возвращает array('DebugKit', 'Blog', 'User');
App::objects('Controller'); возвращает array('PagesController', 'BlogController');
Также можно искать только среди объектов плагина, используя синтаксис точки с плагином.
App::objects('MyPlugin.Model'); возвращает array('MyPluginPost', 'MyPluginComment');
При сканировании каталогов файлы и каталоги, начинающиеся с . будут исключены, так как они обычно используются системами контроля версий.
Параметры
- строка
$type - Тип объекта, например 'Model', 'Controller', 'View/Helper', 'file', 'class' или 'plugin'
- строка|массив
$pathнеобязательно null - Необязательный, сканировать только указанный путь. Если null, будут использоваться пути для выбранного типа.
- boolean
$cacheнеобязательно true - Установите в false, чтобы повторно отсканировать объекты выбранного типа. По умолчанию true.
Возвращает
смешанный типВ случае ошибки / отсутствия — false. В противном случае — массив найденных объектов.
Ссылка
https://book.cakephp.org/2.0/ru/core-utility-libraries/app.html#App::objectspath()source public static
path( string $type , string $plugin null )
Используется для чтения информации, хранящейся в пути
Использование:
App::path('Model'); will return all paths for models
App::path('Model/Datasource', 'MyPlugin'); will return the path for datasources under the 'MyPlugin' plugin
Параметры
- строка
$type - тип пути
- строка
$pluginнеобязательно null - имя плагина
Возвращает
массивСсылка
https://book.cakephp.org/2.0/ru/core-utility-libraries/app.html#App::pathpaths()source public static
paths( )
Получить все загруженные пути из App. Полезно для проверки или сохранения всех путей, известных App. Для путей к конкретному пакету используйте App::path()
Возвращает
массивМассив пакетов и их связанных путей.
Ссылка
https://book.cakephp.org/2.0/ru/core-utility-libraries/app.html#App::pathspluginPath()source public static
pluginPath( string $plugin )
Возвращает путь к плагину. Ищет в определённых путях плагинов.
Использование:
App::pluginPath('MyPlugin'); will return the full path to 'MyPlugin' plugin'
Устарело
3.0.0 ИспользуйтеCakePlugin::path() вместо этого.Параметры
- строка
$plugin - Имя плагина CamelCased/lower_cased для поиска пути.
Возвращает
строкаполный путь к плагину.
Ссылка
https://book.cakephp.org/2.0/ru/core-utility-libraries/app.html#App::pluginPathshutdown()source public static
shutdown( )
Деструктор объекта.
Записывает файл кэша, если были внесены изменения в $_map. Также проверяет, произошла ли критическая ошибка, и вызывает обработчик.
themePath()source public static
themePath( string $theme )
Находит путь к теме. Ищет по определённым путям тем.
Использование:
App::themePath('MyTheme'); will return the full path to the 'MyTheme' theme
Параметры
- string
$theme - Имя темы, путь к которой нужно найти.
Возвращаемое значение
stringПолный путь к теме.
Ссылка
https://book.cakephp.org/2.0/ru/core-utility-libraries/app.html#App::themePathuses()source public static
uses( string $className , string $location )
Объявляет пакет для класса. Это расположение пакета будет использоваться автозагрузчиком классов, если класс попытается использоваться.
Использование:
App::uses('MyCustomController', 'Controller'); установит класс, который будет находиться в пакете Controller.
App::uses('MyHelper', 'MyPlugin.View/Helper'); установит класс-хелпер, который будет находиться в пакете хелперов плагина.
Параметры
- string
$className - Имя класса, для которого нужно настроить пакет.
- string
$location - Имя пакета.
Ссылка
https://book.cakephp.org/2.0/ru/core-utility-libraries/app.html#App::usesПодробное описание свойств
$_cacheChangesource
protected static boolean
Указывает, должен ли кэш класса быть сохранён снова из-за добавления к нему элементов.
false
$_objectCacheChangesource
protected static boolean
Указывает, должен ли кэш объектов быть сохранён снова из-за добавления к нему элементов.
false
$_packageFormatsource
protected static array
Содержит шаблоны для каждого настраиваемого пути пакета в приложении.
array()
$bootstrappingsource
public static boolean
Указывает, что приложение находится в процессе инициализации. Используется для лучшего кэширования загруженных классов, пока библиотеки кэша ещё не инициализированы.
false
$legacysource
public static array
Сопоставляет тип старого стиля класса CakePHP с соответствующим пакетом.
array(
'models' => 'Model',
'behaviors' => 'Model/Behavior',
'datasources' => 'Model/Datasource',
'controllers' => 'Controller',
'components' => 'Controller/Component',
'views' => 'View',
'helpers' => 'View/Helper',
'shells' => 'Console/Command',
'libs' => 'Lib',
'vendors' => 'Vendor',
'plugins' => 'Plugin',
'locales' => 'Locale'
) $typessource
public static array
Список типов объектов и их свойств.
array(
'class' => array('extends' => null, 'core' => true),
'file' => array('extends' => null, 'core' => true),
'model' => array('extends' => 'AppModel', 'core' => false),
'behavior' => array('suffix' => 'Behavior', 'extends' => 'Model/ModelBehavior', 'core' => true),
'controller' => array('suffix' => 'Controller', 'extends' => 'AppController', 'core' => true),
'component' => array('suffix' => 'Component', 'extends' => null, 'core' => true),
'lib' => array('extends' => null, 'core' => true),
'view' => array('suffix' => 'View', 'extends' => null, 'core' => true),
'helper' => array('suffix' => 'Helper', 'extends' => 'AppHelper', 'core' => true),
'vendor' => array('extends' => null, 'core' => true),
'shell' => array('suffix' => 'Shell', 'extends' => 'AppShell', 'core' => true),
'plugin' => array('extends' => null, 'core' => true)
)
© 2005–2017 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/2.10/class-App.html