Класс 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 знает.
Ссылка: http://book.cakephp.org/2.0/ru/core-utility-libraries/app.html
Авторские права: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: MIT License
Расположение: 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() и автоматической загрузки классов
- Вспомогательная функция для включения отдельных файлов
- Вспомогательная функция для загрузки файлов из папок вендоров
- Сопоставляет $name с $file.
- Возвращает полный путь к файлу.
- Устанавливает и возвращает шаблоны для каждого настраиваемого пути пакета
-
Настройка каждого расположения пакета в файловой системе. Вы можете настроить несколько путей поиска для каждого пакета, которые будут использоваться для поиска файлов по одной папке за раз в указанном порядке. Все пути должны оканчиваться разделителем каталогов
- Возвращает полный путь к пакету внутри ядра CakePHP
-
Находит классы по $name или конкретные файлы для поиска. Вызов App::import() не будет создавать какие-либо классы, содержащиеся в файлах. Он только найдёт и выполнит require() файла.
-
Увеличивает значение ini-настройки PHP «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 - имя плагина с использованием camelCase, если применимо
- строка
$type - имя пакета, где расположен класс
- строка
$originalType - имя типа, предоставленное первоначально пользователем
- логическое значение
$parent - должен ли загружаться родительский класс или нет
Возвращает
логическое значениеtrue, если класс был успешно загружен и существует
_loadFile()source protected static
_loadFile( string $name , string $plugin , array $search , string $file , boolean $return )
Вспомогательная функция для включения отдельных файлов
Параметры
- строка
$name - уникальное имя файла для идентификации его внутри приложения
- строка
$plugin - имя плагина с использованием camelCase, если применимо
- массив
$search - список путей для поиска файла
- строка
$file - имя файла, если известно, в противном случае используется $name
- логическое значение
$return - должен ли этот метод возвращать содержимое файла после обработки php или только индикатор успеха
Возвращает
смешанное значениесодержимое файла после обработки php, если $return установлено в true, в противном случае булево значение, указывающее на успех
_loadVendor()source protected static
_loadVendor( string $name , string $plugin , string $file , string $ext )
Вспомогательная функция для загрузки файлов из папок вендоров
Параметры
- строка
$name - уникальное имя файла для идентификации его внутри приложения
- строка
$plugin - имя плагина с использованием camelCase, если применимо
- строка
$file - имя файла, если известно
- строка
$ext - расширение файла, если известно
Возвращает
логическое значениеtrue, если файл был успешно загружен, иначе false
_map()source protected static
_map( string $file , string $name , string $plugin null )
Сопоставляет $name с $file.
Параметры
- строка
$file - полный путь к файлу
- строка
$name - уникальное имя для этого сопоставления
- строка
$pluginнеобязательно null - имя плагина с использованием camelCase, если объект из плагина
_mapped()source protected static
_mapped( string $name , string $plugin null )
Возвращает полный путь к файлу.
Параметры
- строка
$name - уникальное имя
- строка
$pluginнеобязательно null - имя плагина с использованием camelCase, если объект из плагина
Возвращает
смешанное значениепуть к файлу, если найден, иначе 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|string
$modeнеобязательно App::PREPEND App::RESET установит пути, App::APPEND добавит пути, App::PREPEND добавит пути в начало (по умолчанию) App::REGISTER зарегистрирует новые пакеты и их пути, %s в пути будет заменён на путь APP.
Ссылка
http://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 - Тип пакета.
Возвращаемое значение
массивполный путь к пакету
Ссылка
http://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, если должен быть проверен родительский класс, принимает массив ключ => значение ('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 $variable;
Возвращаемое значение
booleantrue, если класс уже в памяти или если файл найден и загружен, false, если нет
Ссылка
http://book.cakephp.org/2.0/ru/core-utility-libraries/app.html#включение-файлов-с-app-importincreaseMemoryLimit()source public static
increaseMemoryLimit( string $additionalKb )
Увеличивает настройку PHP "memory_limit" ini на указанную величину в килобайтах.
Параметры
- строка
$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, если не объявлено
Ссылка
http://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.
Возвращаемое значение
mixedЛибо false при ошибке/недостатке. Или массив найденных объектов.
Ссылка
http://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 - имя плагина
Возвращаемое значение
массивСсылка
http://book.cakephp.org/2.0/ru/core-utility-libraries/app.html#App::pathpaths()source public static
paths( )
Получает все загруженные пути из App. Полезно для проверки или хранения всех путей, о которых App знает. Для путей к определённому пакету используйте App::path()
Возвращаемое значение
массивМассив пакетов и их соответствующих путей.
Ссылка
http://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 для поиска пути.
Возвращаемое значение
строкаПолный путь к плагину.
Ссылка
http://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
Параметры
- строка
$theme - имя темы, для которой нужно найти путь.
Возвращает
строкуполный путь к теме.
Ссылка
http://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'); установит класс-хелпер, который будет найден в пакете хелперов плагина
Параметры
- строка
$className - имя класса, для которого нужно настроить пакет
- строка
$location - имя пакета
Ссылка
http://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()
$bootstrappingsource
public static boolean
Указывает, находится ли приложение в процессе загрузки. Используется для лучшего кэширования загруженных классов, пока библиотеки кэша ещё не инициализированы
false
$legacysource
public static массив
Сопоставляет старый тип класса 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(
'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–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.
https://api.cakephp.org/2.9/class-App.html