Spec-Zone.ru › CakePHP 2.9

Класс 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
    Вспомогательная функция для загрузки файлов из папок вендоров
  • _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

    Увеличивает значение ini-настройки PHP «memory_limit» на указанную величину в килобайтах

  • 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
имя плагина с использованием 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( )

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

Возвращает

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

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, если должен быть проверен родительский класс, принимает массив ключ => значение ('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;

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

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.

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

mixed
Либо 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

Параметры

строка $theme
имя темы, для которой нужно найти путь.

Возвращает

строку
полный путь к теме.

Ссылка

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'); установит класс-хелпер, который будет найден в пакете хелперов плагина

Параметры

строка $className
имя класса, для которого нужно настроить пакет
строка $location
имя пакета

Ссылка

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

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

$_cacheChangesource

protected static boolean

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

false

$_classMapsource

protected static массив

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

array()

$_mapsource

protected static массив

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

array()

$_objectCacheChangesource

protected static boolean

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

false

$_objectssource

protected static массив

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

array()

$_packageFormatsource

protected static массив

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

array()

$_packagessource

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

$returnsource

public static boolean

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

false

$searchsource

public static массив

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

array()

$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

Spec-Zone.ru

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