Spec-Zone.ru › CakePHP 2.8

Класс 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
Ссылка: 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
    'append'
  • string

    PREPEND
    'prepend'
  • string

    REGISTER
    'register'
  • boolean

    RESET
    true

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

  • $_cacheChange protected static
    boolean
    Указывает, следует ли снова сохранить кэш класса из-за добавления в него
  • $_classMap protected static
    array
    Содержит расположение каждого класса
  • $_map protected static
    array
    Содержит пары ключ/значение $type => путь к файлу.
  • $_objectCacheChange protected static
    boolean
    Указывает, следует ли снова сохранить кэш объектов из-за добавления в него
  • $_objects protected static
    array
    Содержит массив ключ => значение типов объектов.
  • $_packageFormat protected static
    array
    Содержит шаблоны для каждого настраиваемого пути пакета в приложении
  • $_packages protected static
    array
    Содержит возможные пути для каждого имени пакета
  • $bootstrapping public static
    boolean

    Указывает, что приложение находится в процессе загрузки. Используется для лучшего кеширования загруженных классов, пока библиотеки кеширования еще не были инициализированы

  • $legacy public static
    array
    Сопоставляет тип старого стиля класса CakePHP соответствующему пакету
  • $return public static
    boolean
    Возвращать ли загруженный файл.
  • $search public static
    array
    Пути для поиска файлов.
  • $types public static
    array
    Список типов объектов и их свойств

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

  • _checkFatalError() protected static
    Проверить наличие критической ошибки и запустить настроенный обработчик, если он есть
  • _loadClass() protected static

    Вспомогательная функция для включения классов. Это оболочка совместимости для использования App::uses() и автоматической загрузки классов

  • _loadFile() protected static
    Вспомогательная функция для включения отдельных файлов
  • _loadVendor() protected static
    Вспомогательная функция для загрузки файлов из папок vendors
  • _map() protected static
    Сопоставляет $name с $file.
  • _mapped() protected static
    Возвращает полный путь к файлу.
  • _packageFormat() protected static
    Устанавливает и возвращает шаблоны для каждого настраиваемого пути к пакетам
  • build() public static

    Настраивает каждый путь к пакету в файловой системе. Вы можете настроить несколько путей поиска для каждого пакета, которые будут использоваться для поиска файлов по одной папке за раз в заданном порядке. Все пути должны заканчиваться символом разделителя каталога

  • core() public static
    Возвращает полный путь к пакету внутри ядра CakePHP
  • import() public static

    Ищет классы по $name или конкретные файлы для поиска. Вызов App::import() не будет создавать классы, содержащиеся в файлах. Он только найдет и выполнит require() файла.

  • increaseMemoryLimit() public static

    Увеличивает значение PHP "memory_limit" в ini-файле на указанную величину в килобайтах

  • init() public static
    Инициализирует кэш для App, регистрирует функцию закрытия.
  • load() public static

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

  • location() public static
    Возвращает имя пакета, где был определен класс
  • objects() public static
    Возвращает массив объектов заданного типа.
  • path() public static
    Используется для чтения информации, хранящейся в пути
  • paths() public static

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

  • pluginPath() public static
    Получить путь к плагину. Ищет среди определенных путей к плагинам.
  • shutdown() public static
    Деструктор объекта.
  • themePath() public static
    Находит путь к теме. Ищет среди определенных путей к темам.
  • uses() public static

    Объявляет пакет для класса. Этот путь к пакету будет использоваться автоматическим загрузчиком классов, если класс будет пытаться использоваться

Подробное описание методов

_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
нужно ли загрузить родительский класс или нет

Возвращает

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

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

Возвращает

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

core()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::core

import()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;

Возвращаемое значение

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

Ссылка

http://book.cakephp.org/2.0/ru/core-utility-libraries/app.html#включение-файлов-с-app-import

increaseMemoryLimit()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
имя класса для загрузки

Возвращаемое значение

boolean

location()source public static

location( string $className )

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

Параметры

строка $className
имя класса, чтобы получить имя пакета

Возвращаемое значение

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

Ссылка

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

objects()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::objects

path()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::path

paths()source public static

paths( )

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

Возвращаемое значение

массив
Массив пакетов и соответствующих путей.

Ссылка

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

pluginPath()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::pluginPath
END_OF_DOCUMENT_MARKER

shutdown()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::themePath

uses()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

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

Spec-Zone.ru

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