Spec-Zone.ru › CakePHP 2.10

Класс 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
Ссылка: https://book.cakephp.org/2.0/ru/core-utility-libraries/app.html
Авторские права: Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
Лицензия: Лицензия MIT
Расположение: 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 ini-настройки "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
имя плагина с использованием верблюжьего случая, если есть
строка $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 или только уведомление об успехе

Возвращает

mixed
если $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
с использованием верблюжьего случая, если объект из плагина, имя плагина

Возвращает

mixed
путь к файлу, если найден, иначе 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|строка $mode необязательно App::PREPEND

App::RESET установит пути, App::APPEND добавит пути, App::PREPEND добавит пути в начало (по умолчанию), App::REGISTER зарегистрирует новые пакеты и их пути, %s в пути будет заменён на путь APP.

Ссылка

https://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
Тип пакета.

Возвращает

массив
полный путь к пакету

Ссылка

https://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()
пути для поиска файлов, array('path 1', 'path 2', 'path 3');
строка $file необязательно null
полное имя файла для поиска, включая расширение
boolean $return необязательно false

Возвратить загруженный файл, файл должен содержать оператор return в нём, чтобы работать: return $variable;

Возвращает

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

Ссылка

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

increaseMemoryLimit()source public static

increaseMemoryLimit( string $additionalKb )

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

Параметры

строка $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, если не объявлено

Ссылка

https://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. В противном случае — массив найденных объектов.

Ссылка

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

Возвращает

массив

Ссылка

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

paths()source public static

paths( )

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

Возвращает

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

Ссылка

https://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 для поиска пути.

Возвращает

строка
полный путь к плагину.

Ссылка

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

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
Полный путь к теме.

Ссылка

https://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
Имя пакета.

Ссылка

https://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–2017 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.10/class-App.html

Spec-Zone.ru

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