Класс MediaView
MediaView предоставляет реализацию пользовательского представления для отправки файлов посетителям. Он отлично подходит для того, чтобы ответ действия контроллера был файлом, сохраненным где-либо в файловой системе.
Пример использования можно найти во внутренних компонентах CakePHP. MediaView используется для предоставления ресурсов плагинов и тем, так как они обычно недоступны из webroot приложения. В отличие от других представлений, MediaView использует несколько viewVars, имеющих специальное значение:
-
idИмя файла в файловой системе сервера, включая расширение. -
nameИмя файла, которое будет отправлено пользователю, указанное без расширения. -
downloadУстанавливается в true, чтобы задать заголовокContent-Disposition. Это идеально подходит для загрузки файлов. -
pathАбсолютный путь, включая конечный / в файловой системе сервера, дляid. -
mimeTypeТип MIME файла, если CakeResponse не знает его. Должен быть ассоциативным массивом, где расширение является ключом, а тип MIME - значением, например, array('ini' => 'text/plain')
Использование
class ExampleController extends AppController { public function download() { $this->viewClass = 'Media'; $params = array( 'id' => 'example.zip', 'name' => 'example', 'download' => true, 'extension' => 'zip', 'path' => APP . 'files' . DS ); $this->set($params); } }
- Объект
-
Представление -
MediaView
Устаревший: 3.0.0 Устарел с версии 2.3, используйте CakeResponse::file() вместо этого
Авторские права: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: Лицензия MIT
Расположен по адресу Cake/View/MediaView.php
Подробное описание метода
renderисходный код public
render( string $view null , string $layout null )
Отобразить или загрузить указанный файл
Параметры
- строка
$viewнеобязательно null - Не используется
- строка
$layoutнеобязательно null - Не используется
Исключения
CakeExceptionЕсли в представлении произошла ошибка.
Переопределяет
View::render() Методы, унаследованные от Представление
__constructисходный код public
__construct( Controller $controller null )
Конструктор
Параметры
-
Controller$controllerнеобязательно null - Объект контроллера для извлечения View::_passedVars.
Переопределяет
Object::__construct() __getисходный код public
__get( string $name )
Магический доступ к помощникам. Предоставляет доступ к устаревшим атрибутам.
Параметры
- строка
$name - Имя атрибута для получения.
Возвращает
mixedсмешанный тип
__issetисходный код public
__isset( string $name )
Магическая проверка isset для устаревших атрибутов.
Параметры
- строка
$name - Имя атрибута для проверки.
Возвращает
booleanлогический тип
__setисходный код public
__set( string $name , mixed $value )
Магический доступ к устаревшим атрибутам.
Параметры
- строка
$name - Имя атрибута для установки.
- смешанный тип
$value - Значение атрибута для установки.
Возвращает
mixedсмешанный тип
_elementCacheисходный код protected
_elementCache( string $name , string $data , array $options )
Проверяет, кэширован ли элемент, и возвращает кэшированные данные, если они есть
Параметры
- строка
$name - Имя элемента
- строка
$data - Данные
- массив
$options - Параметры элемента
Возвращает
string|nullстрока|null
_evaluateисходный код protected
_evaluate( string $viewFile , array $dataForView )
Метод среды выполнения для оценки шаблона/скрипта представления.
Параметры
- строка
$viewFile - Имя файла представления
- массив
$dataForView - Данные для включения в отрисовываемое представление. Если пусто, будут использованы текущие View::$viewVars.
Возвращает
stringРезультат рендеринга
_getElementFileNameисходный код protected
_getElementFileName( string $name )
Находит имя файла элемента, возвращает false при ошибке.
Параметры
- строка
$name - Имя элемента для поиска.
Возвращает
mixedСтрока с именем файла элемента или false, если не найдено.
_getExtensionsисходный код protected
_getExtensions( )
Получить расширения, которые могут использовать файлы представления.
Возвращает
arrayМассив расширений, используемых файлами представления.
_getLayoutFileNameисходный код protected
_getLayoutFileName( string $name null )
Возвращает имя файла макета для этого шаблона в виде строки.
Параметры
- строка
$nameнеобязательно null - Имя макета для поиска.
Возвращает
stringИмя файла макета (.ctp).
Исключения
MissingLayoutExceptionесли макет не найден
_getViewFileNameисходный код protected
_getViewFileName( string $name null )
Возвращает имя файла шаблона заданного действия (.ctp) в виде строки. Имена действий с большой буквы будут преобразовываться в нижний регистр! Это означает, что вы можете иметь LongActionNames, которые ссылаются на представления long_action_names.ctp.
Параметры
- строка
$nameнеобязательно null - Действие контроллера для поиска имени файла шаблона
Возвращает
stringИмя файла шаблона
Исключения
MissingViewExceptionесли файл представления не найден.
_pathsисходный код protected
_paths( string $plugin null , boolean $cached true )
Возвращает все возможные пути для поиска файлов представления в нужном порядке
Параметры
- строка
$pluginнеобязательно null - Необязательное имя плагина для поиска файлов представления.
- логический тип
$cachedнеобязательно true - Установите в false, чтобы принудительно обновить пути представления. По умолчанию true.
Возвращает
arrayпути
_renderисходный код protected
_render( string $viewFile , array $data array() )
Отрисовывает и возвращает результат для заданного файла представления с массивом данных. Обрабатывает родительские/расширенные представления.
Параметры
- строка
$viewFile - Имя файла представления
- массив
$dataнеобязательно array() - Данные для включения в отрисовываемое представление. Если пусто, будут использованы текущие View::$viewVars.
Возвращает
stringРезультат рендеринга
Исключения
CakeExceptionесли блок оставлен открытым.
Вызывает
View.beforeRenderFile $this, array($viewFile)View.afterRenderFile $this, array($viewFile, $content)
_renderElementисходный код protected
_renderElement( string $file , array $data , array $options )
Отрисовывает элемент и запускает перед и послеRender вызовы для него, и записывает в кеш, если кеш используется
Параметры
- строка
$file - Путь к файлу элемента
- массив
$data - Данные для рендеринга
- массив
$options - Параметры элемента
Возвращает
stringстрока
Вызывает
View.beforeRender $this, array($file)View.afterRender $this, array($file, $element)
addScriptsource public
addScript( string $name , string $content null )
Добавляет блок скрипта или другой элемент для вставки в $scripts_for_layout в <head /> макета документа.
Параметры
- строка
$name - Имя ключа для скрипта или содержимое скрипта. Имя может использоваться для обновления/замены элемента скрипта.
- строка
$contentнеобязательно null - Содержимое добавляемого скрипта, необязательно.
См. также
View::start()appendsource public
append( string $name , mixed $value null )
Добавляет содержимое к существующему или новому блоку. Добавление к новому блоку создаст этот блок.
Параметры
- строка
$name - Имя блока
- смешанное
$valueнеобязательно null - Содержимое блока.
См. также
ViewBlock::concat()assignsource public
assign( string $name , mixed $value )
Устанавливает содержимое блока. Это перепишет любое существующее содержимое.
Параметры
- строка
$name - Имя блока
- смешанное
$value - Содержимое блока.
См. также
ViewBlock::set()blockssource public
blocks( )
Получить имена всех существующих блоков.
Возвращает
arrayМассив, содержащий блоки.
См. также
ViewBlock::keys()elementsource public
element( string $name , array $data array() , array $options array() )
Отображает фрагмент PHP с предоставленными параметрами и возвращает HTML, XML или любую другую строку.
Эта функция реализует концепцию элементов (или «частичных макетов»), и массив $params используется для передачи данных для использования в элементе. Элементы могут кэшироваться, улучшая производительность, используя опцию cache.
Параметры
- строка
$name - Имя файла шаблона в папке/app/View/Elements/, или
MyPlugin.templateдля использования шаблона элемента из MyPlugin. Если элемент не найден в плагине, будет выполнена обычная каскадная проверка пути представления. - массив
$dataнеобязательно array() - Массив данных, которые будут доступны для отображаемого представления (т. е. элемента).
- массив
$optionsнеобязательно array() - Массив опций. Возможные ключи: -
cache- Может бытьtrue, чтобы включить кэширование, используя конфигурацию в View::$elementCache. Или массив. Если массив, следующие ключи могут быть использованы: -config- Используется для хранения кэшированного элемента в пользовательской конфигурации кэша. -key- Используется для определения ключа, используемого в Cache::write(). Он будет префиксelement_-plugin- (устарело!) Загрузить элемент из определенного плагина. Этот параметр устарел и будет удален в CakePHP 3.0. ИспользуйтеPlugin.element_nameвместо этого. -callbacks- Установите в true, чтобы вызвать обратные вызовы beforeRender и afterRender для этого элемента. По умолчанию false. -ignoreMissing- Используется для разрешения отсутствующих элементов. Установите в true, чтобы не выводить сообщения об ошибках.
Возвращает
stringОтображенный элемент
elementExistssource public
elementExists( string $name )
Проверяет наличие элемента
Параметры
- строка
$name - Имя файла шаблона в папке /app/View/Elements/, или
MyPlugin.templateдля проверки элемента шаблона из MyPlugin. Если элемент не найден в плагине, будет выполнена обычная каскадная проверка пути представления.
Возвращает
booleanУспешно
endsource public
end( )
Завершение блока захвата. Комплементарно к View::start()
См. также
ViewBlock::end()existssource public
exists( string $name )
Проверить, существует ли блок
Параметры
- строка
$name - Имя блока
Возвращает
booleanbool
extendsource public
extend( string $name )
Предоставляет расширение/наследование представления или элемента. Представления могут расширять родительское представление и заполнять блоки в родительском шаблоне.
Параметры
- строка
$name - Представление или элемент для «расширения» текущего.
Исключения
LogicExceptionпри расширении представления самим собой или создании циклов расширения.
LogicExceptionпри расширении несуществующего элемента
fetchsource public
fetch( string $name , string $default '' )
Получить содержимое блока. Если блок пуст или не определен, будет возвращено ''
Параметры
- строка
$name - Имя блока
- строка
$defaultнеобязательно '' - Текст по умолчанию
Возвращает
stringсодержимое блока или $default, если блок не существует.
См. также
ViewBlock::get()getsource public
get( string $var , mixed $default null )
Возвращает содержимое заданной переменной представления.
Параметры
- строка
$var - Переменная представления, содержимое которой требуется.
- смешанное
$defaultнеобязательно null - Содержимое по умолчанию/значение по умолчанию для $var.
Возвращает
mixedСодержимое переменной с указанным именем, если она установлена, в противном случае $default.
getCurrentTypesource public
getCurrentType( )
Получить текущий тип представления
Возвращает
stringстрока
getEventManagersource public
getEventManager( )
Возвращает экземпляр менеджера CakeEventManager, обрабатывающий любые обратные вызовы. Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов к событиям контроллера, или создать свои собственные события и запускать их по желанию.
Возвращает
CakeEventManagerCakeEventManager
getVarsource public
getVar( string $var )
Возвращает содержимое заданной переменной представления.
Параметры
- строка
$var - Переменная представления, содержимое которой требуется.
Возвращает
mixedСодержимое переменной с указанным именем, если она установлена, в противном случае null.
getVarssource public
getVars( )
Возвращает список переменных, доступных в текущем контексте представления.
Возвращает
arrayМассив имён установленных переменных представления.
loadHelpersource public
loadHelper( string $helperName , array $settings array() )
Загружает помощник. Делегирует загрузку помощника HelperCollection::load().
Параметры
- строка
$helperName - Имя помощника для загрузки.
- массив
$settingsнеобязательно array() - Настройки для помощника.
Возвращает
Helperобъект построенного помощника.
См. также
HelperCollection::load()loadHelperssource public
loadHelpers( )
Взаимодействие с HelperCollection для загрузки всех помощников.
pluginSplitsource public
pluginSplit( string $name , boolean $fallback true )
Разделяет имя плагина в формате точка на имя плагина и имя файла. Если в $name нет точки, то индекс 0 будет null. Проверяет, загружен ли плагин, иначе имя файла останется неизменным для имён файлов, содержащих точку
Параметры
- строка
$name - Имя плагина, которое вы хотите разделить.
- логическое значение
$fallbackнеобязательно true - Если true, использует плагин, заданный в текущем CakeRequest, когда загруженный плагин не найден
Возвращает
arrayМассив с 2 индексами. 0 => имя плагина, 1 => имя файла
prependsource public
prepend( string $name , mixed $value null )
Добавляет в начало существующего или нового блока. Добавление в новый блок создаст этот блок.
Параметры
- строка
$name - Имя блока
- смешанный тип
$valueнеобязательно null - Содержимое блока.
См. также
ViewBlock::concat()renderCachesource public
renderCache( string $filename , string $timeStart )
Отображает кэшированный вид. Работает совместно с CacheHelper и Dispatcher для отображения кэшированных файлов представления.
Параметры
- строка
$filename - Файл кэша для включения
- строка
$timeStart - Время начала рендеринга страницы
Возвращает
booleanРезультат рендеринга кэшированного файла.
renderLayoutsource public
renderLayout( string $content , string $layout null )
Отображает макет. Возвращает вывод из _render(). Возвращает false при ошибке. Для использования в макете создаются несколько переменных.
-
title_for_layout- Заглушка обратной совместимости, вы должны установить это значение, если хотите больше контроля. -
content_for_layout- содержит рендеренный файл представления -
scripts_for_layout- Содержит контент, добавленный с помощью addScript(), а также любой контент в блоках 'meta', 'css' и 'script'. Они добавляются в указанном порядке.
Устаревшие функции:
-
$scripts_for_layoutустарела и будет удалена в CakePHP 3.0. Используйте вместо этого функции работы с блоками.meta,cssиscriptбудут заполнены соответствующими методами HtmlHelper. -
$title_for_layoutустарела и будет удалена в CakePHP 3.0. Используйте вместо этого блокtitle. -
$content_for_layoutустарела и будет удалена в CakePHP 3.0. Используйте вместо этого блокcontent.
Параметры
- строка
$content - Содержимое для рендеринга в представлении, заключенное в окружающий макет.
- строка
$layoutнеобязательно null - Имя макета
Возвращает
mixedОтрендеренный вывод или false при ошибке
Выбрасывает
CakeExceptionв случае ошибки в представлении.
Вызывает
View.beforeLayout $this, массив($layoutFileName)View.afterLayout $this, массив($layoutFileName)
setsource public
set( string|array $one , string|array $two null )
Позволяет шаблону или элементу установить переменную, которая будет доступна в макете или другом элементе. Аналогично Controller::set().
Параметры
- строка|массив
$one - Строка или массив данных.
- строка|массив
$twoнеобязательно null - Значение, если $one — строка (которая затем действует как ключ). Не используется, если $one — ассоциативный массив, иначе служит значениями для ключей $one.
startsource public
start( string $name )
Начать захват вывода для блока
Параметры
- строка
$name - Имя блока, для которого нужно захватить вывод.
См. также
ViewBlock::start()startIfEmptysource public
startIfEmpty( string $name )
Начать захват вывода для блока, если он пустой
Параметры
- строка
$name - Имя блока, для которого нужно захватить вывод.
См. также
ViewBlock::startIfEmpty()uuidsource public
uuid( string $object , string $url )
Генерирует уникальный, не случайный идентификатор DOM для объекта, основанный на типе объекта и целевом URL.
Параметры
- строка
$object - Тип объекта, например, 'форма' или 'ссылка'
- строка
$url - Целевой URL объекта
Возвращает
stringстрока
Методы, унаследованные от Object
_mergeVarssource protected
_mergeVars( array $properties , string $class , boolean $normalize true )
Объединяет свойства объекта $property со свойством в определении $class. Значение свойства этого класса будет объединено поверх $class'.
Это обеспечивает некоторую DRY магию, предоставляемую CakePHP. Если вы хотите отключить её, переопределите этот метод как пустую функцию.
Параметры
- массив
$properties - Название свойств для объединения.
- строка
$class - Класс для объединения свойства.
- логическое значение
$normalizeнеобязательно true - Установите в значение true, чтобы выполнить свойства через Hash::normalize() перед объединением.
_setsource protected
_set( array $properties array() )
Позволяет установить несколько свойств объекта в одной строке кода. Будет устанавливать только те свойства, которые являются частью объявления класса.
Параметры
- массив
$propertiesнеобязательно array() - Ассоциативный массив, содержащий свойства и соответствующие значения.
_stopsource protected
_stop( integer|string $status 0 )
Останавливает выполнение текущего скрипта. Оборачивает exit(), что упрощает тестирование.
Параметры
- целое число|строка
$statusнеобязательно 0 - см. http://php.net/exit для значений
dispatchMethodsource public
dispatchMethod( string $method , array $params array() )
Вызывает метод этого объекта с заданными параметрами. Предоставляет ОО оболочку для call_user_func_array
Параметры
- строка
$method - Имя вызываемого метода
- массив
$paramsнеобязательно array() - Список параметров для использования при вызове $method
Возвращает
mixedВозвращает результат вызова метода
logsource public
log( string $msg , integer $type LOG_ERR , null|string|array $scope null )
Удобный метод для записи сообщения в CakeLog. См. CakeLog::write() для получения дополнительной информации о записи в журналы.
Параметры
- строка
$msg - Сообщение журнала
- целое число
$typeнеобязательно LOG_ERR - Константа типа ошибки. Определена в app/Config/core.php.
- null|строка|массив
$scopeнеобязательно null - Область(и), в которой создаётся сообщение журнала. См. CakeLog::config() для получения дополнительной информации о областях ведения журнала.
Возвращает
booleanУспешность записи в журнал
requestActionsource public
requestAction( string|array $url , array $extra array() )
Вызывает метод контроллера из любого места. Может использоваться для связывания контроллеров или подключения плагинов к основному приложению. requestAction можно использовать для возврата отрисованных представлений или получения возвращаемого значения из действий контроллера.
Под капотом этот метод использует Router::reverse() для преобразования параметра $url в строковый URL. Вы должны использовать форматы URL, совместимые с Router::reverse().
Передача данных POST и GET
Данные POST и GET могут быть смоделированы в requestAction. Используйте $extra['url'] для данных GET. Параметр $extra['data'] позволяет моделировать данные POST.
Параметры
- строка|массив
$url - Строковый или массиво-базированный URL. В отличие от других массивов URL в CakePHP, этот URL не будет автоматически обрабатывать переданные и именованные аргументы в параметре $url.
- массив
$extraнеобязательно массив() - Если массив включает ключ "return", он устанавливает AutoRender в значение true. Также может использоваться для отправки данных GET/POST, а также именованных и переданных аргументов.
Возвращаемое значение
mixedБулево значение true или false при успехе/неудаче, или содержимое отрисованного действия, если в $extra установлен ключ 'return'.
toStringsource public
toString( )
Преобразование объекта в строку. Каждый класс может переопределить этот метод по необходимости.
Возвращаемое значение
stringИмя этого класса
Константы, унаследованные от View
TYPE_ELEMENT, TYPE_LAYOUT, TYPE_VIEW |
Свойства, унаследованные от View
$_currentsource
protected string
Текущий обрабатываемый файл представления. Используется для разрешения родительских файлов.
null $_currentTypesource
protected string
В данный момент рендерится элемент. Используется для поиска родительских фрагментов для элементов.
'' $_eventManagersource
protected CakeEventManager
Экземпляр CakeEventManager, который использует этот объект View для отправки внутренних событий. Обычно менеджер используется совместно с контроллером, поэтому можно регистрировать события представления в слое контроллера.
null $_eventManagerConfiguredsource
protected boolean
Была ли уже настроена система обработки событий для этого объекта
false $_parentssource
protected array
Имена представлений и их родителей, используемых с View::extend();
array() $_passedVarssource
protected array
Список переменных для сбора из связанного контроллера.
array( 'viewVars', 'autoLayout', 'ext', 'helpers', 'view', 'layout', 'name', 'theme', 'layoutPath', 'viewPath', 'request', 'plugin', 'passedArgs', 'cacheAction' )
$_stacksource
protected array
Стек контента, используемый для вложенных шаблонов, которые все используют View::extend();
array() $autoLayoutsource
public boolean
Включает или выключает обычный режим CakePHP применения файлов макетов. Включен по умолчанию. Отключение означает, что макеты не будут автоматически применяться к отображаемым представлениям.
true $cacheActionsource
public mixed
Используется для определения методов контроллера, которые будут кэшироваться.
See
Controller::$cacheActionfalse $elementCachesource
public string
Конфигурация кэша, которую View будет использовать для хранения кэшированных элементов. Изменение этого параметра изменит конфигурацию по умолчанию, под которой хранятся элементы. Вы также можете выбрать конфигурацию кэша для каждого элемента.
See
View::element()'default' $elementCacheSettingssource
public array
Настройки кэша элементов
See
View::_elementCache();View::_renderElement()array() $requestsource
public CakeRequest
Экземпляр объекта CakeRequest, который содержит информацию о текущем запросе. Этот объект содержит всю информацию о запросе и несколько методов для чтения дополнительной информации о запросе.
$subDirsource
public string
Подкаталог для этого файла представления. Часто используется для маршрутизации на основе расширений. Например, с расширением xml, $subDir будет xml/
null Магические свойства, унаследованные от View
$Cachesource
public CacheHelper
$Formsource
public FormHelper
$Htmlsource
public HtmlHelper
$Numbersource
public NumberHelper
$Paginatorsource
public PaginatorHelper
$Sessionsource
public SessionHelper
$Textsource
public TextHelper
$Timesource
public TimeHelper
© 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-MediaView.html