Spec-Zone.ru › CakePHP 2.7

Класс 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 знает.

Пакет: Cake\Core
Авторские права: 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
должен ли загружаться родительский класс

Возвращает

boolean
true, если класс был успешно загружен и существует

_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
расширение файла, если известно

Возвращает

boolean
true, если файл был загружен успешно, 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::build

coresource 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::core
END_OF_DOCUMENT_MARKER

importsource 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;

Возвращает

boolean
true, если класс уже в памяти или файл найден и загружен, false, если нет

Ссылка

http://book.cakephp.org/2.0/ru/core-utility-libraries/app.html#including-files-with-app-import

initsource public static

init( )

Инициализирует кэш для App, регистрирует функцию завершения работы.

loadsource public static

load( string $className )

Метод для обработки автоматической загрузки классов. Он будет искать пакет каждого класса, определённый с помощью App::uses(), и с этой информацией будет разрешать имя пакета в полный путь для загрузки класса. Имя файла для каждого класса должно соответствовать имени класса. Например, если класс имеет имя MyCustomClass, имя файла должно быть MyCustomClass.php

Параметры

string $className
имя класса для загрузки

Возвращает

boolean
bool

locationsource public static

location( string $className )

Возвращает имя пакета, где был определён класс для расположения.

Параметры

string $className
имя класса для получения имени пакета

Возвращает

string|null
Имя пакета или null, если не объявлено

Ссылка

http://book.cakephp.org/2.0/ru/core-utility-libraries/app.html#App::location

objectssource 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::objects

pathsource 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
имя плагина

Возвращает

array
array

Ссылка

http://book.cakephp.org/2.0/ru/core-utility-libraries/app.html#App::path

pathssource public static

paths( )

Получает все загруженные пути из App. Полезно для проверки или хранения всех путей, о которых знает App. Для путей к определённому пакету используйте App::path().

Возвращает

array
Массив пакетов и связанных с ними путей.

Ссылка

http://book.cakephp.org/2.0/ru/core-utility-libraries/app.html#App::paths

pluginPathsource 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::pluginPath

shutdownsource 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::themePath

usessource 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

Краткое описание свойств

$_cacheChangesource

protected static boolean

Указывает, следует ли снова сохранить кеш класса из-за его добавления

false

$_classMapsource

protected static array

Содержит расположение каждого класса

array()

$_mapsource

protected static array

Содержит пары ключ/значение $type => путь к файлу.

array()

$_objectCacheChangesource

protected static boolean

Указывает, следует ли снова сохранить кеш объектов из-за его добавления

false

$_objectssource

protected static array

Содержит массив объектов в виде ключ => значение типов объектов.

array()

$_packageFormatsource

protected static array

Содержит шаблоны для каждого настраиваемого пути пакета в приложении

array()

$_packagessource

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'
)

$returnsource

public static boolean

Возвращать ли загруженный файл.

false

$searchsource

public static array

Пути для поиска файлов.

array()

$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.7/class-App.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API