Класс 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 знает.
Авторские права: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: MIT License
Ссылка: http://book.cakephp.org/2.0/en/core-utility-libraries/app.html
Расположение Cake/Core/App.php
Подробное описание метода
_checkFatalErrorsource protected static
_checkFatalError( )
Проверяет, произошла ли фатальная ошибка, и запускает настроенный обработчик, если он настроен
_loadClasssource protected static
_loadClass( string $name , string $plugin , string $type , string $originalType , boolean $parent )
Вспомогательная функция для включения классов. Это обертка совместимости для использования App::uses() и автоматической загрузки классов.
Параметры
- строка
$name - уникальное имя файла для его идентификации внутри приложения
- строка
$plugin - имя плагина с использованием верблюжьего случая, если есть
- строка
$type - имя пакета, где расположен класс
- строка
$originalType - имя типа, предоставленное пользователем
- логическое значение
$parent - должен ли загружаться родительский класс
Возвращает
booleantrue, если класс был успешно загружен и существует
_loadFilesource protected static
_loadFile( string $name , string $plugin , array $search , string $file , boolean $return )
Вспомогательная функция для включения отдельных файлов.
Параметры
- строка
$name - уникальное имя файла для его идентификации внутри приложения
- строка
$plugin - имя плагина с использованием верблюжьего случая, если есть
- массив
$search - список путей для поиска файла
- строка
$file - имя файла, если известно, в противном случае используется $name
- логическое значение
$return - должен ли метод возвращать содержимое файла после обработки PHP или только сообщение об успехе
Возвращает
mixedесли $return содержимое файла после обработки PHP, логическое значение, обозначающее успешность, иначе
_loadVendorsource protected static
_loadVendor( string $name , string $plugin , string $file , string $ext )
Вспомогательная функция для загрузки файлов из папок vendors.
Параметры
- строка
$name - уникальное имя файла для его идентификации внутри приложения
- строка
$plugin - имя плагина с использованием верблюжьего случая, если есть
- строка
$file - имя файла, если известно
- строка
$ext - расширение файла, если известно
Возвращает
booleantrue, если файл был загружен успешно, false в противном случае
_mapsource protected static
_map( string $file , string $name , string $plugin null )
Сопоставляет $name с $file.
Параметры
- строка
$file - полный путь к файлу
- строка
$name - уникальное имя для этого сопоставления
- строка
$pluginнеобязательно null - имя плагина с использованием верблюжьего случая, если объект из плагина
_mappedsource protected static
_mapped( string $name , string $plugin null )
Возвращает полный путь к файлу.
Параметры
- строка
$name - уникальное имя
- строка
$pluginнеобязательно null - имя плагина с использованием верблюжьего случая, если объект из плагина
Возвращает
mixedпуть к файлу, если найден, false в противном случае
_packageFormatsource protected static
_packageFormat( )
Устанавливает и возвращает шаблоны для каждого настраиваемого пути пакета.
Возвращает
arrayшаблоны для каждого настраиваемого пути пакета
buildsource 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() - ассоциативный массив с именами пакетов в качестве ключей и списком каталогов для новых путей поиска
- логическое значение/строка
$modeнеобязательноApp::PREPEND - App::RESET установит пути, App::APPEND добавит пути, App::PREPEND поставит пути в начало (по умолчанию), App::REGISTER зарегистрирует новые пакеты и их пути, %s в пути будет заменён на путь к APP
Ссылка
http://book.cakephp.org/2.0/en/core-utility-libraries/app.html#App::buildcoresource public static
core( string $type )
Возвращает полный путь к пакету внутри ядра CakePHP.
Использование:
App::core('Cache/Engine'); will return the full path to the cache engines package
Параметры
- строка
$type - Тип пакета.
Возвращает
arrayполный путь к пакету
Ссылка
http://book.cakephp.org/2.0/en/core-utility-libraries/app.html#App::coreimportsource 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() для файла.
Параметры
- string|array
$typeнеобязательно null - Тип класса, если передан как строка, или все параметры могут быть переданы как один массив в $type.
- string
$nameнеобязательно null - Имя класса или уникальное имя файла
- boolean|array
$parentнеобязательно true - boolean true, если следует искать родительский класс, принимает массив ключ => значение ('parent' => $parent, 'file' => $file, 'search' => $search, 'ext' => '$ext'); $ext позволяет установить расширение имени файла на основе Inflector::underscore($name) . ".$ext";
- array
$searchнеобязательно array() - пути для поиска файлов, array('путь 1', 'путь 2', 'путь 3');
- string
$fileнеобязательно null - полное имя файла для поиска, включая расширение
- boolean
$returnнеобязательно false - Возвращает загруженный файл, файл должен содержать оператор return в нём для работы: return $variable;
Возвращает
booleantrue, если класс уже в памяти или файл найден и загружен, false, если нет
Ссылка
http://book.cakephp.org/2.0/ru/core-utility-libraries/app.html#including-files-with-app-importinitsource public static
init( )
Инициализирует кэш для App, регистрирует функцию завершения работы.
loadsource public static
load( string $className )
Метод для обработки автоматической загрузки классов. Он будет искать пакет каждого класса, определённый с помощью App::uses(), и с этой информацией будет разрешать имя пакета в полный путь для загрузки класса. Имя файла для каждого класса должно соответствовать имени класса. Например, если класс имеет имя MyCustomClass, имя файла должно быть MyCustomClass.php
Параметры
- string
$className - имя класса для загрузки
Возвращает
booleanbool
locationsource public static
location( string $className )
Возвращает имя пакета, где был определён класс для расположения.
Параметры
- string
$className - имя класса для получения имени пакета
Возвращает
string|nullИмя пакета или null, если не объявлено
Ссылка
http://book.cakephp.org/2.0/ru/core-utility-libraries/app.html#App::locationobjectssource 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');
При сканировании каталогов файлы и каталоги, начинающиеся с ., будут исключены, так как они обычно используются системами управления версиями.
Параметры
- string
$type - Тип объекта, например 'Model', 'Controller', 'View/Helper', 'file', 'class' или 'plugin'
- string|array
$pathнеобязательно null - Необязательно, сканировать только указанный путь. Если null, будут использоваться пути для выбранного типа.
- boolean
$cacheнеобязательно true - Установите в false, чтобы повторно сканировать объекты выбранного типа. По умолчанию true.
Возвращает
mixedВ случае ошибки / отсутствия – false. В противном случае – массив найденных объектов.
Ссылка
http://book.cakephp.org/2.0/ru/core-utility-libraries/app.html#App::objectspathsource 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
Параметры
- string
$type - тип пути
- string
$pluginнеобязательно null - имя плагина
Возвращает
arrayarray
Ссылка
http://book.cakephp.org/2.0/ru/core-utility-libraries/app.html#App::pathpathssource public static
paths( )
Получает все загруженные пути из App. Полезно для проверки или хранения всех путей, о которых знает App. Для путей к определённому пакету используйте App::path().
Возвращает
arrayМассив пакетов и связанных с ними путей.
Ссылка
http://book.cakephp.org/2.0/ru/core-utility-libraries/app.html#App::pathspluginPathsource public static
pluginPath( string $plugin )
Получает путь плагина. Ищет среди определённых путей плагинов.
Использование:
App::pluginPath('MyPlugin'); will return the full path to 'MyPlugin' plugin'
Устаревшее
3.0.0 ИспользуйтеCakePlugin::path() вместо этого.Параметры
- string
$plugin - Имя плагина в формате CamelCase/нижнего регистра для поиска пути.
Возвращает
stringПолный путь к плагину.
Ссылка
http://book.cakephp.org/2.0/ru/core-utility-libraries/app.html#App::pluginPathshutdownsource public static
shutdown( )
Деструктор объекта.
Записывает файл кэша, если были внесены изменения в $_map. Также проверяет, произошла ли ошибка и вызывает обработчик.
themePathsource public static
themePath( string $theme )
Находит путь темы. Ищет среди определённых путей тем.
Использование:
App::themePath('MyTheme'); will return the full path to the 'MyTheme' theme
Параметры
- string
$theme - Имя темы для поиска пути.
Возвращает
stringПолный путь к теме.
Ссылка
http://book.cakephp.org/2.0/ru/core-utility-libraries/app.html#App::themePathusessource public static
uses( string $className , string $location )
Объявляет пакет для класса. Этот путь к пакету будет использован автоматическим загрузчиком классов, если класс будет пытаться использоваться.
Использование:
App::uses('MyCustomController', 'Controller'); установит класс для поиска в пакете Controller
App::uses('MyHelper', 'MyPlugin.View/Helper'); установит класс помощника для поиска в пакете помощников плагина
Параметры
- string
$className - имя класса для настройки пакета
- string
$location - имя пакета
Ссылка
http://book.cakephp.org/2.0/ru/core-utility-libraries/app.html#App::usesРезюме констант
string | APPEND Добавление путей | 'append' |
string | PREPEND Добавление путей в начало | 'prepend' |
string | REGISTER Регистрация пакета | 'register' |
boolean | RESET Сброс путей вместо слияния | true |
Краткое описание свойств
© 2005–2016 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.
http://api.cakephp.org/2.7/class-App.html