Класс 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() и автоматической загрузки классов
- Вспомогательная функция для включения отдельных файлов
- Вспомогательная функция для загрузки файлов из папок vendors
- Сопоставляет $name с $file.
- Возвращает полный путь к файлу.
- Устанавливает и возвращает шаблоны для каждого настраиваемого пути к пакетам
-
Настраивает каждый путь к пакету в файловой системе. Вы можете настроить несколько путей поиска для каждого пакета, которые будут использоваться для поиска файлов по одной папке за раз в заданном порядке. Все пути должны заканчиваться символом разделителя каталога
- Возвращает полный путь к пакету внутри ядра CakePHP
-
Ищет классы по $name или конкретные файлы для поиска. Вызов App::import() не будет создавать классы, содержащиеся в файлах. Он только найдет и выполнит require() файла.
-
Увеличивает значение PHP "memory_limit" в ini-файле на указанную величину в килобайтах
- Инициализирует кэш для 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 или только сообщение об успехе
Возвращает
смешанный типесли $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 - имя плагина в формате с заглавными буквами, если объект из плагина
Возвращает
смешанный типпуть к файлу, если найден, в противном случае 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, если родительский класс должен быть просмотрен, принимает массив key => value ('parent' => $parent, 'file' => $file, 'search' => $search, 'ext' => '$ext'); $ext позволяет установить расширение имени файла на основе Inflector::underscore($name) . ".$ext";
- массив
$searchнеобязательно array() - пути для поиска файлов, массив ('путь 1', 'путь 2', 'путь 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 - Число в килобайтах
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.
Возвращаемое значение
смешанноелибо 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
Параметры
- string
$theme - имя темы, для которой нужно найти путь.
Возвращаемое значение
stringполный путь к теме.
Ссылка
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'); установит класс помощника, чтобы он находился в пакете помощников плагина
Параметры
- string
$className - имя класса, для которого необходимо настроить пакет
- string
$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
Содержит шаблоны для каждого настраиваемого пути пакета в приложении
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–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.8/class-App.html