Class yii\web\View
Inheritance | yii\web\View » yii\base\View » yii\base\Component » yii\base\BaseObject |
---|---|
Implements | yii\base\Configurable, yii\base\DynamicContentAwareInterface |
Available since version | 2.0 |
Source Code | https://github.com/yiisoft/yii2/blob/master/framework/web/View.php |
View represents a view object in the MVC pattern.
View provides a set of methods (e.g. render()) for rendering purpose.
View is configured as an application component in yii\base\Application by default.
You can access that instance via Yii::$app->view
.
You can modify its configuration by adding an array to your application config under components
as it is shown in the following example:
'view' => [
'theme' => 'app\themes\MyTheme',
'renderers' => [
// you may add Smarty or Twig renderer here
]
// ...
]
For more details and usage information on View, see the guide article on views.
Public Properties
Property | Type | Description | Defined By |
---|---|---|---|
$assetBundles | yii\web\AssetBundle[] | List of the registered asset bundles. | yii\web\View |
$assetManager | yii\web\AssetManager | The asset manager. | yii\web\View |
$behaviors | yii\base\Behavior[] | List of behaviors attached to this component. | yii\base\Component |
$blocks | array | A list of named output blocks. | yii\base\View |
$context | yii\base\ViewContextInterface | The context under which the renderFile() method is being invoked. | yii\base\View |
$css | array | The registered CSS code blocks. | yii\web\View |
$cssFiles | array | The registered CSS files. | yii\web\View |
$defaultExtension | string | The default view file extension. | yii\base\View |
$dynamicContents | yii\base\DynamicContentAwareInterface[] | Class instances supporting dynamic contents. | yii\base\View |
$dynamicPlaceholders | array | A list of placeholders. | yii\base\View |
$isPageEnded | boolean | yii\web\View | |
$js | array | The registered JS code blocks | yii\web\View |
$jsFiles | array | The registered JS files. | yii\web\View |
$linkTags | array | The registered link tags. | yii\web\View |
$metaTags | array | The registered meta tags. | yii\web\View |
$params | array | Custom parameters that are shared among view templates. | yii\base\View |
$renderers | array|null | A list of available renderers indexed by their corresponding supported file extensions. | yii\base\View |
$theme | yii\base\Theme|array|string|null | The theme object or the configuration for creating the theme object. | yii\base\View |
$title | string | The page title | yii\web\View |
$viewFile | string|boolean | The view file currently being rendered. | yii\base\View |
Public Methods
Method | Description | Defined By |
---|---|---|
__call() | Calls the named method which is not a class method. | yii\base\Component |
__clone() | This method is called after the object is created by cloning an existing one. | yii\base\Component |
__construct() | Constructor. | yii\base\BaseObject |
__get() | Returns the value of a component property. | yii\base\Component |
__isset() | Checks if a property is set, i.e. defined and not null. | yii\base\Component |
__set() | Sets the value of a component property. | yii\base\Component |
__unset() | Sets a component property to be null. | yii\base\Component |
addDynamicPlaceholder() | Adds a placeholder for dynamic content. | yii\base\View |
afterRender() | This method is invoked right after renderFile() renders a view file. | yii\base\View |
attachBehavior() | Attaches a behavior to this component. | yii\base\Component |
attachBehaviors() | Attaches a list of behaviors to the component. | yii\base\Component |
beforeRender() | This method is invoked right before renderFile() renders a view file. | yii\base\View |
beginBlock() | Begins recording a block. | yii\base\View |
beginBody() | Marks the beginning of an HTML body section. | yii\web\View |
beginCache() | Begins fragment caching. | yii\base\View |
beginContent() | Begins the rendering of content that is to be decorated by the specified view. | yii\base\View |
beginPage() | Marks the beginning of a page. | yii\base\View |
behaviors() | Returns a list of behaviors that this component should behave as. | yii\base\Component |
canGetProperty() | Returns a value indicating whether a property can be read. | yii\base\Component |
canSetProperty() | Returns a value indicating whether a property can be set. | yii\base\Component |
className() | Returns the fully qualified name of this class. | yii\base\BaseObject |
clear() | Clears up the registered meta tags, link tags, css/js scripts and files. | yii\web\View |
detachBehavior() | Detaches a behavior from the component. | yii\base\Component |
detachBehaviors() | Detaches all behaviors from the component. | yii\base\Component |
endBlock() | Ends recording a block. | yii\base\View |
endBody() | Marks the ending of an HTML body section. | yii\web\View |
endCache() | Ends fragment caching. | yii\base\View |
endContent() | Ends the rendering of content. | yii\base\View |
endPage() | Marks the ending of an HTML page. | yii\web\View |
ensureBehaviors() | Makes sure that the behaviors declared in behaviors() are attached to this component. | yii\base\Component |
evaluateDynamicContent() | Evaluates the given PHP statements. | yii\base\View |
getAssetManager() | Registers the asset manager being used by this view object. | yii\web\View |
getBehavior() | Returns the named behavior object. | yii\base\Component |
getBehaviors() | Returns all behaviors attached to this component. | yii\base\Component |
getDynamicContents() | Returns a list of currently active dynamic content class instances. | yii\base\View |
getDynamicPlaceholders() | Returns a list of placeholders for dynamic content. This method is used internally to implement the content caching feature. | yii\base\View |
getViewFile() | yii\base\View | |
hasEventHandlers() | Returns a value indicating whether there is any handler attached to the named event. | yii\base\Component |
hasMethod() | Returns a value indicating whether a method is defined. | yii\base\Component |
hasProperty() | Returns a value indicating whether a property is defined for this component. | yii\base\Component |
head() | Marks the position of an HTML head section. | yii\web\View |
init() | Initializes the view component. | yii\base\View |
off() | Detaches an existing event handler from this component. | yii\base\Component |
on() | Attaches an event handler to an event. | yii\base\Component |
popDynamicContent() | Removes a last class instance supporting dynamic contents from a list of currently active dynamic content class instances. | yii\base\View |
pushDynamicContent() | Adds a class instance supporting dynamic contents to the end of a list of currently active dynamic content class instances. | yii\base\View |
registerAssetBundle() | Registers the named asset bundle. | yii\web\View |
registerCsrfMetaTags() | Registers CSRF meta tags. | yii\web\View |
registerCss() | Registers a CSS code block. | yii\web\View |
registerCssFile() | Registers a CSS file. | yii\web\View |
registerJs() | Registers a JS code block. | yii\web\View |
registerJsFile() | Registers a JS file. | yii\web\View |
registerJsVar() | Registers a JS code block defining a variable. The name of variable will be used as key, preventing duplicated variable names. | yii\web\View |
registerLinkTag() | Registers a link tag. | yii\web\View |
registerMetaTag() | Registers a meta tag. | yii\web\View |
render() | Renders a view. | yii\base\View |
renderAjax() | Renders a view in response to an AJAX request. | yii\web\View |
renderDynamic() | Renders dynamic content returned by the given PHP statements. | yii\base\View |
renderFile() | Renders a view file. | yii\base\View |
renderPhpFile() | Renders a view file as a PHP script. | yii\base\View |
setAssetManager() | Sets the asset manager. | yii\web\View |
setDynamicPlaceholders() | Sets a list of placeholders for dynamic content. This method is used internally to implement the content caching feature. | yii\base\View |
trigger() | Triggers an event. | yii\base\Component |
Protected Methods
Method | Description | Defined By |
---|---|---|
findViewFile() | Finds the view file based on the given view name. | yii\base\View |
getRequestedViewFile() | yii\base\View | |
registerAssetFiles() | Registers all files provided by an asset bundle including depending bundles files. | yii\web\View |
renderBodyBeginHtml() | Renders the content to be inserted at the beginning of the body section. | yii\web\View |
renderBodyEndHtml() | Renders the content to be inserted at the end of the body section. | yii\web\View |
renderHeadHtml() | Renders the content to be inserted in the head section. | yii\web\View |
Events
Event | Type | Description | Defined By |
---|---|---|---|
EVENT_AFTER_RENDER | yii\base\ViewEvent | An event that is triggered by renderFile() right after it renders a view file. | yii\base\View |
EVENT_BEFORE_RENDER | yii\base\ViewEvent | An event that is triggered by renderFile() right before it renders a view file. | yii\base\View |
EVENT_BEGIN_BODY | yii\web\Event | An event that is triggered by beginBody(). | yii\web\View |
EVENT_BEGIN_PAGE | yii\base\Event | An event that is triggered by beginPage(). | yii\base\View |
EVENT_END_BODY | yii\web\Event | An event that is triggered by endBody(). | yii\web\View |
EVENT_END_PAGE | yii\base\Event | An event that is triggered by endPage(). | yii\base\View |
Constants
Constant | Value | Description | Defined By |
---|---|---|---|
PH_BODY_BEGIN | '' | This is internally used as the placeholder for receiving the content registered for the beginning of the body section. | yii\web\View |
PH_BODY_END | '' | This is internally used as the placeholder for receiving the content registered for the end of the body section. | yii\web\View |
PH_HEAD | ' ' | This is internally used as the placeholder for receiving the content registered for the head section. | yii\web\View |
POS_BEGIN | 2 | The location of registered JavaScript code block or files. This means the location is at the beginning of the body section. | yii\web\View |
POS_END | 3 | The location of registered JavaScript code block or files. This means the location is at the end of the body section. | yii\web\View |
POS_HEAD | 1 | The location of registered JavaScript code block or files. This means the location is in the head section. | yii\web\View |
POS_LOAD | 5 |
The location of registered JavaScript code block.
This means the JavaScript code block will be enclosed within jQuery(window).load() . |
yii\web\View |
POS_READY | 4 |
The location of registered JavaScript code block.
This means the JavaScript code block will be enclosed within jQuery(document).ready() . |
yii\web\View |
Property Details
List of the registered asset bundles. The keys are the bundle names, and the values are the registered yii\web\AssetBundle objects.
See also registerAssetBundle().
The asset manager. Defaults to the "assetManager" application component.
The registered CSS files.
See also registerCssFile().
The registered JS files.
See also registerJsFile().
The registered link tags.
See also registerLinkTag().
The registered meta tags.
See also registerMetaTag().
Method Details
Defined in: yii\base\Component::__call()
Calls the named method which is not a class method.
This method will check if any attached behavior has the named method and will execute it if available.
Do not call this method directly as it is a PHP magic method that will be implicitly called when an unknown method is being invoked.
public mixed __call ( $name, $params ) | ||
$name | string |
The method name |
$params | array |
Method parameters |
return | mixed |
The method return value |
---|---|---|
throws | yii\base\UnknownMethodException |
when calling unknown method |
public function __call($name, $params)
{
$this->ensureBehaviors();
foreach ($this->_behaviors as $object) {
if ($object->hasMethod($name)) {
return call_user_func_array([$object, $name], $params);
}
}
throw new UnknownMethodException('Calling unknown method: ' . get_class($this) . "::$name()");
}
Defined in: yii\base\Component::__clone()
This method is called after the object is created by cloning an existing one.
It removes all behaviors because they are attached to the old object.
public void __clone ( ) |
public function __clone()
{
$this->_events = [];
$this->_eventWildcards = [];
$this->_behaviors = null;
}
Defined in: yii\base\BaseObject::__construct()
Constructor.
The default implementation does two things:
- Initializes the object with the given configuration
$config
. - Call init().
If this method is overridden in a child class, it is recommended that
- the last parameter of the constructor is a configuration array, like
$config
here. - call the parent implementation at the end of the constructor.
public void __construct ( $config = [] ) | ||
$config | array |
Name-value pairs that will be used to initialize the object properties |
public function __construct($config = [])
{
if (!empty($config)) {
Yii::configure($this, $config);
}
$this->init();
}
Defined in: yii\base\Component::__get()
Returns the value of a component property.
This method will check in the following order and act accordingly:
- a property defined by a getter: return the getter result
- a property of a behavior: return the behavior property value
Do not call this method directly as it is a PHP magic method that
will be implicitly called when executing $value = $component->property;
.
See also __set().
public mixed __get ( $name ) | ||
$name | string |
The property name |
return | mixed |
The property value or the value of a behavior's property |
---|---|---|
throws | yii\base\UnknownPropertyException |
if the property is not defined |
throws | yii\base\InvalidCallException |
if the property is write-only. |
public function __get($name)
{
$getter = 'get' . $name;
if (method_exists($this, $getter)) {
// read property, e.g. getName()
return $this->$getter();
}
// behavior property
$this->ensureBehaviors();
foreach ($this->_behaviors as $behavior) {
if ($behavior->canGetProperty($name)) {
return $behavior->$name;
}
}
if (method_exists($this, 'set' . $name)) {
throw new InvalidCallException('Getting write-only property: ' . get_class($this) . '::' . $name);
}
throw new UnknownPropertyException('Getting unknown property: ' . get_class($this) . '::' . $name);
}
Defined in: yii\base\Component::__isset()
Checks if a property is set, i.e. defined and not null.
This method will check in the following order and act accordingly:
- a property defined by a setter: return whether the property is set
- a property of a behavior: return whether the property is set
- return
false
for non existing properties
Do not call this method directly as it is a PHP magic method that
will be implicitly called when executing isset($component->property)
.
public boolean __isset ( $name ) | ||
$name | string |
The property name or the event name |
return | boolean |
Whether the named property is set |
---|
public function __isset($name)
{
$getter = 'get' . $name;
if (method_exists($this, $getter)) {
return $this->$getter() !== null;
}
// behavior property
$this->ensureBehaviors();
foreach ($this->_behaviors as $behavior) {
if ($behavior->canGetProperty($name)) {
return $behavior->$name !== null;
}
}
return false;
}
Defined in: yii\base\Component::__set()
Sets the value of a component property.
This method will check in the following order and act accordingly:
- a property defined by a setter: set the property value
- an event in the format of "on xyz": attach the handler to the event "xyz"
- a behavior in the format of "as xyz": attach the behavior named as "xyz"
- a property of a behavior: set the behavior property value
Do not call this method directly as it is a PHP magic method that
will be implicitly called when executing $component->property = $value;
.
See also __get().
public void __set ( $name, $value ) | ||
$name | string |
The property name or the event name |
$value | mixed |
The property value |
throws | yii\base\UnknownPropertyException |
if the property is not defined |
---|---|---|
throws | yii\base\InvalidCallException |
if the property is read-only. |
public function __set($name, $value)
{
$setter = 'set' . $name;
if (method_exists($this, $setter)) {
// set property
$this->$setter($value);
return;
} elseif (strncmp($name, 'on ', 3) === 0) {
// on event: attach event handler
$this->on(trim(substr($name, 3)), $value);
return;
} elseif (strncmp($name, 'as ', 3) === 0) {
// as behavior: attach behavior
$name = trim(substr($name, 3));
$this->attachBehavior($name, $value instanceof Behavior ? $value : Yii::createObject($value));
return;
}
// behavior property
$this->ensureBehaviors();
foreach ($this->_behaviors as $behavior) {
if ($behavior->canSetProperty($name)) {
$behavior->$name = $value;
return;
}
}
if (method_exists($this, 'get' . $name)) {
throw new InvalidCallException('Setting read-only property: ' . get_class($this) . '::' . $name);
}
throw new UnknownPropertyException('Setting unknown property: ' . get_class($this) . '::' . $name);
}
Defined in: yii\base\Component::__unset()
Sets a component property to be null.
This method will check in the following order and act accordingly:
- a property defined by a setter: set the property value to be null
- a property of a behavior: set the property value to be null
Do not call this method directly as it is a PHP magic method that
will be implicitly called when executing unset($component->property)
.
public void __unset ( $name ) | ||
$name | string |
The property name |
throws | yii\base\InvalidCallException |
if the property is read only. |
---|
public function __unset($name)
{
$setter = 'set' . $name;
if (method_exists($this, $setter)) {
$this->$setter(null);
return;
}
// behavior property
$this->ensureBehaviors();
foreach ($this->_behaviors as $behavior) {
if ($behavior->canSetProperty($name)) {
$behavior->$name = null;
return;
}
}
throw new InvalidCallException('Unsetting an unknown or read-only property: ' . get_class($this) . '::' . $name);
}
Defined in: yii\base\View::addDynamicPlaceholder()
Adds a placeholder for dynamic content.
This method is used internally to implement the content caching feature.
public void addDynamicPlaceholder ( $placeholder, $statements ) | ||
$placeholder | ||
$statements | string |
The PHP statements for generating the dynamic content. |
public function addDynamicPlaceholder($placeholder, $statements)
{
foreach ($this->cacheStack as $cache) {
if ($cache instanceof DynamicContentAwareInterface) {
$cache->addDynamicPlaceholder($placeholder, $statements);
} else {
// TODO: Remove in 2.1
$cache->dynamicPlaceholders[$placeholder] = $statements;
}
}
$this->dynamicPlaceholders[$placeholder] = $statements;
}
Defined in: yii\base\View::afterRender()
This method is invoked right after renderFile() renders a view file.
The default implementation will trigger the EVENT_AFTER_RENDER event. If you override this method, make sure you call the parent implementation first.
public void afterRender ( $viewFile, $params, &$output ) | ||
$viewFile | string |
The view file being rendered. |
$params | array |
The parameter array passed to the render() method. |
$output | string |
The rendering result of the view file. Updates to this parameter will be passed back and returned by renderFile(). |
public function afterRender($viewFile, $params, &$output)
{
if ($this->hasEventHandlers(self::EVENT_AFTER_RENDER)) {
$event = new ViewEvent([
'viewFile' => $viewFile,
'params' => $params,
]);
$event->output =& $output;
$this->trigger(self::EVENT_AFTER_RENDER, $event);
}
}
Defined in: yii\base\Component::attachBehavior()
Attaches a behavior to this component.
This method will create the behavior object based on the given configuration. After that, the behavior object will be attached to this component by calling the yii\base\Behavior::attach() method.
See also detachBehavior().
public yii\base\Behavior attachBehavior ( $name, $behavior ) | ||
$name | string |
The name of the behavior. |
$behavior | string|array|yii\base\Behavior |
The behavior configuration. This can be one of the following:
|
return | yii\base\Behavior |
The behavior object |
---|
public function attachBehavior($name, $behavior)
{
$this->ensureBehaviors();
return $this->attachBehaviorInternal($name, $behavior);
}
Defined in: yii\base\Component::attachBehaviors()
Attaches a list of behaviors to the component.
Each behavior is indexed by its name and should be a yii\base\Behavior object, a string specifying the behavior class, or an configuration array for creating the behavior.
See also attachBehavior().
public void attachBehaviors ( $behaviors ) | ||
$behaviors | array |
List of behaviors to be attached to the component |
public function attachBehaviors($behaviors)
{
$this->ensureBehaviors();
foreach ($behaviors as $name => $behavior) {
$this->attachBehaviorInternal($name, $behavior);
}
}
Defined in: yii\base\View::beforeRender()
This method is invoked right before renderFile() renders a view file.
The default implementation will trigger the EVENT_BEFORE_RENDER event. If you override this method, make sure you call the parent implementation first.
public boolean beforeRender ( $viewFile, $params ) | ||
$viewFile | string |
The view file to be rendered. |
$params | array |
The parameter array passed to the render() method. |
return | boolean |
Whether to continue rendering the view file. |
---|
public function beforeRender($viewFile, $params)
{
$event = new ViewEvent([
'viewFile' => $viewFile,
'params' => $params,
]);
$this->trigger(self::EVENT_BEFORE_RENDER, $event);
return $event->isValid;
}
Defined in: yii\base\View::beginBlock()
Begins recording a block.
This method is a shortcut to beginning yii\widgets\Block.
public yii\widgets\Block beginBlock ( $id, $renderInPlace = false ) | ||
$id | string |
The block ID. |
$renderInPlace | boolean |
Whether to render the block content in place. Defaults to false, meaning the captured block will not be displayed. |
return | yii\widgets\Block |
The Block widget instance |
---|
public function beginBlock($id, $renderInPlace = false)
{
return Block::begin([
'id' => $id,
'renderInPlace' => $renderInPlace,
'view' => $this,
]);
}
Marks the beginning of an HTML body section.
public void beginBody ( ) |
public function beginBody()
{
echo self::PH_BODY_BEGIN;
$this->trigger(self::EVENT_BEGIN_BODY);
}
Defined in: yii\base\View::beginCache()
Begins fragment caching.
This method will display cached content if it is available. If not, it will start caching and would expect an endCache() call to end the cache and save the content into cache. A typical usage of fragment caching is as follows,
if ($this->beginCache($id)) {
// ...generate content here
$this->endCache();
}
public boolean beginCache ( $id, $properties = [] ) | ||
$id | string |
A unique ID identifying the fragment to be cached. |
$properties | array |
Initial property values for yii\widgets\FragmentCache |
return | boolean |
Whether you should generate the content for caching. False if the cached version is available. |
---|
public function beginCache($id, $properties = [])
{
$properties['id'] = $id;
$properties['view'] = $this;
/* @var $cache FragmentCache */
$cache = FragmentCache::begin($properties);
if ($cache->getCachedContent() !== false) {
$this->endCache();
return false;
}
return true;
}
Defined in: yii\base\View::beginContent()
Begins the rendering of content that is to be decorated by the specified view.
This method can be used to implement nested layout. For example, a layout can be embedded in another layout file specified as '@app/views/layouts/base.php' like the following:
<?php $this->beginContent('@app/views/layouts/base.php'); ?>
//...layout content here...
<?php $this->endContent(); ?>
See also yii\widgets\ContentDecorator.
public yii\widgets\ContentDecorator beginContent ( $viewFile, $params = [] ) | ||
$viewFile | string |
The view file that will be used to decorate the content enclosed by this widget. This can be specified as either the view file path or path alias. |
$params | array |
The variables (name => value) to be extracted and made available in the decorative view. |
return | yii\widgets\ContentDecorator |
The ContentDecorator widget instance |
---|
public function beginContent($viewFile, $params = [])
{
return ContentDecorator::begin([
'viewFile' => $viewFile,
'params' => $params,
'view' => $this,
]);
}
Defined in: yii\base\View::beginPage()
Marks the beginning of a page.
public void beginPage ( ) |
public function beginPage()
{
ob_start();
ob_implicit_flush(false);
$this->trigger(self::EVENT_BEGIN_PAGE);
}
Defined in: yii\base\Component::behaviors()
Returns a list of behaviors that this component should behave as.
Child classes may override this method to specify the behaviors they want to behave as.
The return value of this method should be an array of behavior objects or configurations indexed by behavior names. A behavior configuration can be either a string specifying the behavior class or an array of the following structure:
'behaviorName' => [
'class' => 'BehaviorClass',
'property1' => 'value1',
'property2' => 'value2',
]
Note that a behavior class must extend from yii\base\Behavior. Behaviors can be attached using a name or anonymously. When a name is used as the array key, using this name, the behavior can later be retrieved using getBehavior() or be detached using detachBehavior(). Anonymous behaviors can not be retrieved or detached.
Behaviors declared in this method will be attached to the component automatically (on demand).
public array behaviors ( ) | ||
return | array |
The behavior configurations. |
---|
public function behaviors()
{
return [];
}
Defined in: yii\base\Component::canGetProperty()
Returns a value indicating whether a property can be read.
A property can be read if:
- the class has a getter method associated with the specified name (in this case, property name is case-insensitive);
- the class has a member variable with the specified name (when
$checkVars
is true); - an attached behavior has a readable property of the given name (when
$checkBehaviors
is true).
See also canSetProperty().
public boolean canGetProperty ( $name, $checkVars = true, $checkBehaviors = true ) | ||
$name | string |
The property name |
$checkVars | boolean |
Whether to treat member variables as properties |
$checkBehaviors | boolean |
Whether to treat behaviors' properties as properties of this component |
return | boolean |
Whether the property can be read |
---|
public function canGetProperty($name, $checkVars = true, $checkBehaviors = true)
{
if (method_exists($this, 'get' . $name) || $checkVars && property_exists($this, $name)) {
return true;
} elseif ($checkBehaviors) {
$this->ensureBehaviors();
foreach ($this->_behaviors as $behavior) {
if ($behavior->canGetProperty($name, $checkVars)) {
return true;
}
}
}
return false;
}
Defined in: yii\base\Component::canSetProperty()
Returns a value indicating whether a property can be set.
A property can be written if:
- the class has a setter method associated with the specified name (in this case, property name is case-insensitive);
- the class has a member variable with the specified name (when
$checkVars
is true); - an attached behavior has a writable property of the given name (when
$checkBehaviors
is true).
See also canGetProperty().
public boolean canSetProperty ( $name, $checkVars = true, $checkBehaviors = true ) | ||
$name | string |
The property name |
$checkVars | boolean |
Whether to treat member variables as properties |
$checkBehaviors | boolean |
Whether to treat behaviors' properties as properties of this component |
return | boolean |
Whether the property can be written |
---|
public function canSetProperty($name, $checkVars = true, $checkBehaviors = true)
{
if (method_exists($this, 'set' . $name) || $checkVars && property_exists($this, $name)) {
return true;
} elseif ($checkBehaviors) {
$this->ensureBehaviors();
foreach ($this->_behaviors as $behavior) {
if ($behavior->canSetProperty($name, $checkVars)) {
return true;
}
}
}
return false;
}
::class
instead.
Defined in: yii\base\BaseObject::className()
Returns the fully qualified name of this class.
public static string className ( ) | ||
return | string |
The fully qualified name of this class. |
---|
public static function className()
{
return get_called_class();
}
Clears up the registered meta tags, link tags, css/js scripts and files.
public void clear ( ) |
public function clear()
{
$this->metaTags = [];
$this->linkTags = [];
$this->css = [];
$this->cssFiles = [];
$this->js = [];
$this->jsFiles = [];
$this->assetBundles = [];
}
Defined in: yii\base\Component::detachBehavior()
Detaches a behavior from the component.
The behavior's yii\base\Behavior::detach() method will be invoked.
public yii\base\Behavior|null detachBehavior ( $name ) | ||
$name | string |
The behavior's name. |
return | yii\base\Behavior|null |
The detached behavior. Null if the behavior does not exist. |
---|
public function detachBehavior($name)
{
$this->ensureBehaviors();
if (isset($this->_behaviors[$name])) {
$behavior = $this->_behaviors[$name];
unset($this->_behaviors[$name]);
$behavior->detach();
return $behavior;
}
return null;
}
Defined in: yii\base\Component::detachBehaviors()
Detaches all behaviors from the component.
public void detachBehaviors ( ) |
public function detachBehaviors()
{
$this->ensureBehaviors();
foreach ($this->_behaviors as $name => $behavior) {
$this->detachBehavior($name);
}
}
Defined in: yii\base\View::endBlock()
Ends recording a block.
public void endBlock ( ) |
public function endBlock()
{
Block::end();
}
Marks the ending of an HTML body section.
public void endBody ( ) |
public function endBody()
{
$this->trigger(self::EVENT_END_BODY);
echo self::PH_BODY_END;
foreach (array_keys($this->assetBundles) as $bundle) {
$this->registerAssetFiles($bundle);
}
}
Defined in: yii\base\View::endCache()
Ends fragment caching.
public void endCache ( ) |
public function endCache()
{
FragmentCache::end();
}
Defined in: yii\base\View::endContent()
Ends the rendering of content.
public void endContent ( ) |
public function endContent()
{
ContentDecorator::end();
}
Marks the ending of an HTML page.
public void endPage ( $ajaxMode = false ) | ||
$ajaxMode | boolean |
Whether the view is rendering in AJAX mode. If true, the JS scripts registered at POS_READY and POS_LOAD positions will be rendered at the end of the view like normal scripts. |
public function endPage($ajaxMode = false)
{
$this->trigger(self::EVENT_END_PAGE);
$this->isPageEnded = true;
$content = ob_get_clean();
echo strtr($content, [
self::PH_HEAD => $this->renderHeadHtml(),
self::PH_BODY_BEGIN => $this->renderBodyBeginHtml(),
self::PH_BODY_END => $this->renderBodyEndHtml($ajaxMode),
]);
$this->clear();
}
Defined in: yii\base\Component::ensureBehaviors()
Makes sure that the behaviors declared in behaviors() are attached to this component.
public void ensureBehaviors ( ) |
public function ensureBehaviors()
{
if ($this->_behaviors === null) {
$this->_behaviors = [];
foreach ($this->behaviors() as $name => $behavior) {
$this->attachBehaviorInternal($name, $behavior);
}
}
}
Defined in: yii\base\View::evaluateDynamicContent()
Evaluates the given PHP statements.
This method is mainly used internally to implement dynamic content feature.
public mixed evaluateDynamicContent ( $statements ) | ||
$statements | string |
The PHP statements to be evaluated. |
return | mixed |
The return value of the PHP statements. |
---|
public function evaluateDynamicContent($statements)
{
return eval($statements);
}
Defined in: yii\base\View::findViewFile()
Finds the view file based on the given view name.
protected string findViewFile ( $view, $context = null ) | ||
$view | string |
The view name or the path alias of the view file. Please refer to render() on how to specify this parameter. |
$context | object|null |
The context to be assigned to the view and can later be accessed via $context in the view. If the context implements yii\base\ViewContextInterface, it may also be used to locate the view file corresponding to a relative view name. |
return | string |
The view file path. Note that the file may not exist. |
---|---|---|
throws | yii\base\InvalidCallException |
if a relative view name is given while there is no active context to determine the corresponding view file. |
protected function findViewFile($view, $context = null)
{
if (strncmp($view, '@', 1) === 0) {
// e.g. "@app/views/main"
$file = Yii::getAlias($view);
} elseif (strncmp($view, '//', 2) === 0) {
// e.g. "//layouts/main"
$file = Yii::$app->getViewPath() . DIRECTORY_SEPARATOR . ltrim($view, '/');
} elseif (strncmp($view, '/', 1) === 0) {
// e.g. "/site/index"
if (Yii::$app->controller !== null) {
$file = Yii::$app->controller->module->getViewPath() . DIRECTORY_SEPARATOR . ltrim($view, '/');
} else {
throw new InvalidCallException("Unable to locate view file for view '$view': no active controller.");
}
} elseif ($context instanceof ViewContextInterface) {
$file = $context->getViewPath() . DIRECTORY_SEPARATOR . $view;
} elseif (($currentViewFile = $this->getRequestedViewFile()) !== false) {
$file = dirname($currentViewFile) . DIRECTORY_SEPARATOR . $view;
} else {
throw new InvalidCallException("Unable to resolve view file for view '$view': no active view context.");
}
if (pathinfo($file, PATHINFO_EXTENSION) !== '') {
return $file;
}
$path = $file . '.' . $this->defaultExtension;
if ($this->defaultExtension !== 'php' && !is_file($path)) {
$path = $file . '.php';
}
return $path;
}
Registers the asset manager being used by this view object.
public yii\web\AssetManager getAssetManager ( ) | ||
return | yii\web\AssetManager |
The asset manager. Defaults to the "assetManager" application component. |
---|
public function getAssetManager()
{
return $this->_assetManager ?: Yii::$app->getAssetManager();
}
Defined in: yii\base\Component::getBehavior()
Returns the named behavior object.
public yii\base\Behavior|null getBehavior ( $name ) | ||
$name | string |
The behavior name |
return | yii\base\Behavior|null |
The behavior object, or null if the behavior does not exist |
---|
public function getBehavior($name)
{
$this->ensureBehaviors();
return isset($this->_behaviors[$name]) ? $this->_behaviors[$name] : null;
}
Defined in: yii\base\Component::getBehaviors()
Returns all behaviors attached to this component.
public yii\base\Behavior[] getBehaviors ( ) | ||
return | yii\base\Behavior[] |
List of behaviors attached to this component |
---|
public function getBehaviors()
{
$this->ensureBehaviors();
return $this->_behaviors;
}
Defined in: yii\base\View::getDynamicContents()
Returns a list of currently active dynamic content class instances.
public yii\base\DynamicContentAwareInterface[] getDynamicContents ( ) | ||
return | yii\base\DynamicContentAwareInterface[] |
Class instances supporting dynamic contents. |
---|
public function getDynamicContents()
{
return $this->cacheStack;
}
Defined in: yii\base\View::getDynamicPlaceholders()
Returns a list of placeholders for dynamic content. This method is used internally to implement the content caching feature.
public array getDynamicPlaceholders ( ) | ||
return | array |
A list of placeholders. |
---|
public function getDynamicPlaceholders()
{
return $this->dynamicPlaceholders;
}
Defined in: yii\base\View::getRequestedViewFile()
protected string|boolean getRequestedViewFile ( ) | ||
return | string|boolean |
The requested view currently being rendered. False if no view file is being rendered. |
---|
protected function getRequestedViewFile()
{
return empty($this->_viewFiles) ? false : end($this->_viewFiles)['requested'];
}
Defined in: yii\base\View::getViewFile()
public string|boolean getViewFile ( ) | ||
return | string|boolean |
The view file currently being rendered. False if no view file is being rendered. |
---|
public function getViewFile()
{
return empty($this->_viewFiles) ? false : end($this->_viewFiles)['resolved'];
}
Defined in: yii\base\Component::hasEventHandlers()
Returns a value indicating whether there is any handler attached to the named event.
public boolean hasEventHandlers ( $name ) | ||
$name | string |
The event name |
return | boolean |
Whether there is any handler attached to the event. |
---|
public function hasEventHandlers($name)
{
$this->ensureBehaviors();
if (!empty($this->_events[$name])) {
return true;
}
foreach ($this->_eventWildcards as $wildcard => $handlers) {
if (!empty($handlers) && StringHelper::matchWildcard($wildcard, $name)) {
return true;
}
}
return Event::hasHandlers($this, $name);
}
Defined in: yii\base\Component::hasMethod()
Returns a value indicating whether a method is defined.
A method is defined if:
- the class has a method with the specified name
- an attached behavior has a method with the given name (when
$checkBehaviors
is true).
public boolean hasMethod ( $name, $checkBehaviors = true ) | ||
$name | string |
The property name |
$checkBehaviors | boolean |
Whether to treat behaviors' methods as methods of this component |
return | boolean |
Whether the method is defined |
---|
public function hasMethod($name, $checkBehaviors = true)
{
if (method_exists($this, $name)) {
return true;
} elseif ($checkBehaviors) {
$this->ensureBehaviors();
foreach ($this->_behaviors as $behavior) {
if ($behavior->hasMethod($name)) {
return true;
}
}
}
return false;
}
Defined in: yii\base\Component::hasProperty()
Returns a value indicating whether a property is defined for this component.
A property is defined if:
- the class has a getter or setter method associated with the specified name (in this case, property name is case-insensitive);
- the class has a member variable with the specified name (when
$checkVars
is true); - an attached behavior has a property of the given name (when
$checkBehaviors
is true).
See also:
public boolean hasProperty ( $name, $checkVars = true, $checkBehaviors = true ) | ||
$name | string |
The property name |
$checkVars | boolean |
Whether to treat member variables as properties |
$checkBehaviors | boolean |
Whether to treat behaviors' properties as properties of this component |
return | boolean |
Whether the property is defined |
---|
public function hasProperty($name, $checkVars = true, $checkBehaviors = true)
{
return $this->canGetProperty($name, $checkVars, $checkBehaviors) || $this->canSetProperty($name, false, $checkBehaviors);
}
Marks the position of an HTML head section.
public void head ( ) |
public function head()
{
echo self::PH_HEAD;
}
Defined in: yii\base\View::init()
Initializes the view component.
public void init ( ) |
public function init()
{
parent::init();
if (is_array($this->theme)) {
if (!isset($this->theme['class'])) {
$this->theme['class'] = 'yii\base\Theme';
}
$this->theme = Yii::createObject($this->theme);
} elseif (is_string($this->theme)) {
$this->theme = Yii::createObject($this->theme);
}
}
Defined in: yii\base\Component::off()
Detaches an existing event handler from this component.
This method is the opposite of on().
Note: in case wildcard pattern is passed for event name, only the handlers registered with this wildcard will be removed, while handlers registered with plain names matching this wildcard will remain.
See also on().
public boolean off ( $name, $handler = null ) | ||
$name | string |
Event name |
$handler | callable|null |
The event handler to be removed. If it is null, all handlers attached to the named event will be removed. |
return | boolean |
If a handler is found and detached |
---|
public function off($name, $handler = null)
{
$this->ensureBehaviors();
if (empty($this->_events[$name]) && empty($this->_eventWildcards[$name])) {
return false;
}
if ($handler === null) {
unset($this->_events[$name], $this->_eventWildcards[$name]);
return true;
}
$removed = false;
// plain event names
if (isset($this->_events[$name])) {
foreach ($this->_events[$name] as $i => $event) {
if ($event[0] === $handler) {
unset($this->_events[$name][$i]);
$removed = true;
}
}
if ($removed) {
$this->_events[$name] = array_values($this->_events[$name]);
return true;
}
}
// wildcard event names
if (isset($this->_eventWildcards[$name])) {
foreach ($this->_eventWildcards[$name] as $i => $event) {
if ($event[0] === $handler) {
unset($this->_eventWildcards[$name][$i]);
$removed = true;
}
}
if ($removed) {
$this->_eventWildcards[$name] = array_values($this->_eventWildcards[$name]);
// remove empty wildcards to save future redundant regex checks:
if (empty($this->_eventWildcards[$name])) {
unset($this->_eventWildcards[$name]);
}
}
}
return $removed;
}
Defined in: yii\base\Component::on()
Attaches an event handler to an event.
The event handler must be a valid PHP callback. The following are some examples:
function ($event) { ... } // anonymous function
[$object, 'handleClick'] // $object->handleClick()
['Page', 'handleClick'] // Page::handleClick()
'handleClick' // global function handleClick()
The event handler must be defined with the following signature,
function ($event)
where $event
is an yii\base\Event object which includes parameters associated with the event.
Since 2.0.14 you can specify event name as a wildcard pattern:
$component->on('event.group.*', function ($event) {
Yii::trace($event->name . ' is triggered.');
});
See also off().
public void on ( $name, $handler, $data = null, $append = true ) | ||
$name | string |
The event name |
$handler | callable |
The event handler |
$data | mixed |
The data to be passed to the event handler when the event is triggered. When the event handler is invoked, this data can be accessed via yii\base\Event::$data. |
$append | boolean |
Whether to append new event handler to the end of the existing handler list. If false, the new handler will be inserted at the beginning of the existing handler list. |
public function on($name, $handler, $data = null, $append = true)
{
$this->ensureBehaviors();
if (strpos($name, '*') !== false) {
if ($append || empty($this->_eventWildcards[$name])) {
$this->_eventWildcards[$name][] = [$handler, $data];
} else {
array_unshift($this->_eventWildcards[$name], [$handler, $data]);
}
return;
}
if ($append || empty($this->_events[$name])) {
$this->_events[$name][] = [$handler, $data];
} else {
array_unshift($this->_events[$name], [$handler, $data]);
}
}
Defined in: yii\base\View::popDynamicContent()
Removes a last class instance supporting dynamic contents from a list of currently active dynamic content class instances.
public void popDynamicContent ( ) |
public function popDynamicContent()
{
array_pop($this->cacheStack);
}
Defined in: yii\base\View::pushDynamicContent()
Adds a class instance supporting dynamic contents to the end of a list of currently active dynamic content class instances.
public void pushDynamicContent ( yii\base\DynamicContentAwareInterface $instance ) | ||
$instance | yii\base\DynamicContentAwareInterface |
Class instance supporting dynamic contents. |
public function pushDynamicContent(DynamicContentAwareInterface $instance)
{
$this->cacheStack[] = $instance;
}
Registers the named asset bundle.
All dependent asset bundles will be registered.
public yii\web\AssetBundle registerAssetBundle ( $name, $position = null ) | ||
$name | string |
The class name of the asset bundle (without the leading backslash) |
$position | integer|null |
If set, this forces a minimum position for javascript files. This will adjust depending assets javascript file position or fail if requirement can not be met. If this is null, asset bundles position settings will not be changed. See registerJsFile() for more details on javascript position. |
return | yii\web\AssetBundle |
The registered asset bundle instance |
---|---|---|
throws | yii\base\InvalidConfigException |
if the asset bundle does not exist or a circular dependency is detected |
public function registerAssetBundle($name, $position = null)
{
if (!isset($this->assetBundles[$name])) {
$am = $this->getAssetManager();
$bundle = $am->getBundle($name);
$this->assetBundles[$name] = false;
// register dependencies
$pos = isset($bundle->jsOptions['position']) ? $bundle->jsOptions['position'] : null;
foreach ($bundle->depends as $dep) {
$this->registerAssetBundle($dep, $pos);
}
$this->assetBundles[$name] = $bundle;
} elseif ($this->assetBundles[$name] === false) {
throw new InvalidConfigException("A circular dependency is detected for bundle '$name'.");
} else {
$bundle = $this->assetBundles[$name];
}
if ($position !== null) {
$pos = isset($bundle->jsOptions['position']) ? $bundle->jsOptions['position'] : null;
if ($pos === null) {
$bundle->jsOptions['position'] = $pos = $position;
} elseif ($pos > $position) {
throw new InvalidConfigException("An asset bundle that depends on '$name' has a higher javascript file position configured than '$name'.");
}
// update position for all dependencies
foreach ($bundle->depends as $dep) {
$this->registerAssetBundle($dep, $pos);
}
}
return $bundle;
}
Registers all files provided by an asset bundle including depending bundles files.
Removes a bundle from $assetBundles once files are registered.
protected void registerAssetFiles ( $name ) | ||
$name | string |
Name of the bundle to register |
protected function registerAssetFiles($name)
{
if (!isset($this->assetBundles[$name])) {
return;
}
$bundle = $this->assetBundles[$name];
if ($bundle) {
foreach ($bundle->depends as $dep) {
$this->registerAssetFiles($dep);
}
$bundle->registerAssetFiles($this);
}
unset($this->assetBundles[$name]);
}
Registers CSRF meta tags.
They are rendered dynamically to retrieve a new CSRF token for each request.
$view->registerCsrfMetaTags();
The above code will result in <meta name="csrf-param" content="[yii\web\Request::$csrfParam]">
and <meta name="csrf-token" content="tTNpWKpdy-bx8ZmIq9R72...K1y8IP3XGkzZA==">
added to the page.
Note: Hidden CSRF input of ActiveForm will be automatically refreshed by calling window.yii.refreshCsrfToken()
from yii.js
.
public void registerCsrfMetaTags ( ) |
public function registerCsrfMetaTags()
{
$this->metaTags['csrf_meta_tags'] = $this->renderDynamic('return yii\helpers\Html::csrfMetaTags();');
}
Registers a CSS code block.
public void registerCss ( $css, $options = [], $key = null ) | ||
$css | string |
The content of the CSS code block to be registered |
$options | array |
The HTML attributes for the |
$key | string|null |
The key that identifies the CSS code block. If null, it will use $css as the key. If two CSS code blocks are registered with the same key, the latter will overwrite the former. |
public function registerCss($css, $options = [], $key = null)
{
$key = $key ?: md5($css);
$this->css[$key] = Html::style($css, $options);
}
Registers a CSS file.
This method should be used for simple registration of CSS files. If you want to use features of yii\web\AssetManager like appending timestamps to the URL and file publishing options, use yii\web\AssetBundle and registerAssetBundle() instead.
public void registerCssFile ( $url, $options = [], $key = null ) | ||
$url | string |
The CSS file to be registered. |
$options | array |
The HTML attributes for the link tag. Please refer to yii\helpers\Html::cssFile() for the supported options. The following options are specially handled and are not treated as HTML attributes:
|
$key | string|null |
The key that identifies the CSS script file. If null, it will use $url as the key. If two CSS files are registered with the same key, the latter will overwrite the former. |
throws | yii\base\InvalidConfigException |
---|
public function registerCssFile($url, $options = [], $key = null)
{
$this->registerFile('css', $url, $options, $key);
}
Registers a JS code block.
public void registerJs ( $js, $position = self::POS_READY, $key = null ) | ||
$js | string |
The JS code block to be registered |
$position | integer |
The position at which the JS script tag should be inserted in a page. The possible values are:
|
$key | string|null |
The key that identifies the JS code block. If null, it will use $js as the key. If two JS code blocks are registered with the same key, the latter will overwrite the former. |
public function registerJs($js, $position = self::POS_READY, $key = null)
{
$key = $key ?: md5($js);
$this->js[$position][$key] = $js;
if ($position === self::POS_READY || $position === self::POS_LOAD) {
JqueryAsset::register($this);
}
}
Registers a JS file.
This method should be used for simple registration of JS files. If you want to use features of yii\web\AssetManager like appending timestamps to the URL and file publishing options, use yii\web\AssetBundle and registerAssetBundle() instead.
public void registerJsFile ( $url, $options = [], $key = null ) | ||
$url | string |
The JS file to be registered. |
$options | array |
The HTML attributes for the script tag. The following options are specially handled and are not treated as HTML attributes:
Please refer to yii\helpers\Html::jsFile() for other supported options. |
$key | string|null |
The key that identifies the JS script file. If null, it will use $url as the key. If two JS files are registered with the same key at the same position, the latter will overwrite the former. Note that position option takes precedence, thus files registered with the same key, but different position option will not override each other. |
throws | yii\base\InvalidConfigException |
---|
public function registerJsFile($url, $options = [], $key = null)
{
$this->registerFile('js', $url, $options, $key);
}
Registers a JS code block defining a variable. The name of variable will be used as key, preventing duplicated variable names.
public void registerJsVar ( $name, $value, $position = self::POS_HEAD ) | ||
$name | string |
Name of the variable |
$value | array|string |
Value of the variable |
$position | integer |
The position in a page at which the JavaScript variable should be inserted. The possible values are:
|
public function registerJsVar($name, $value, $position = self::POS_HEAD)
{
$js = sprintf('var %s = %s;', $name, \yii\helpers\Json::htmlEncode($value));
$this->registerJs($js, $position, $name);
}
Registers a link tag.
For example, a link tag for a custom favicon can be added like the following:
$view->registerLinkTag(['rel' => 'icon', 'type' => 'image/png', 'href' => '/myicon.png']);
which will result in the following HTML: <link rel="icon" type="image/png" href="/myicon.png">
.
Note: To register link tags for CSS stylesheets, use registerCssFile() instead, which has more options for this kind of link tag.
public void registerLinkTag ( $options, $key = null ) | ||
$options | array |
The HTML attributes for the link tag. |
$key | string|null |
The key that identifies the link tag. If two link tags are registered with the same key, the latter will overwrite the former. If this is null, the new link tag will be appended to the existing ones. |
public function registerLinkTag($options, $key = null)
{
if ($key === null) {
$this->linkTags[] = Html::tag('link', '', $options);
} else {
$this->linkTags[$key] = Html::tag('link', '', $options);
}
}
Registers a meta tag.
For example, a description meta tag can be added like the following:
$view->registerMetaTag([
'name' => 'description',
'content' => 'This website is about funny raccoons.'
]);
will result in the meta tag <meta name="description" content="This website is about funny raccoons.">
.
public void registerMetaTag ( $options, $key = null ) | ||
$options | array |
The HTML attributes for the meta tag. |
$key | string|null |
The key that identifies the meta tag. If two meta tags are registered with the same key, the latter will overwrite the former. If this is null, the new meta tag will be appended to the existing ones. |
public function registerMetaTag($options, $key = null)
{
if ($key === null) {
$this->metaTags[] = Html::tag('meta', '', $options);
} else {
$this->metaTags[$key] = Html::tag('meta', '', $options);
}
}
Defined in: yii\base\View::render()
Renders a view.
The view to be rendered can be specified in one of the following formats:
- path alias (e.g. "@app/views/site/index");
- absolute path within application (e.g. "//site/index"): the view name starts with double slashes. The actual view file will be looked for under the view path of the application.
- absolute path within current module (e.g. "/site/index"): the view name starts with a single slash. The actual view file will be looked for under the view path of the current module.
- relative view (e.g. "index"): the view name does not start with
@
or/
. The corresponding view file will be looked for under the view path of the view$context
. If$context
is not given, it will be looked for under the directory containing the view currently being rendered (i.e., this happens when rendering a view within another view).
See also renderFile().
public string render ( $view, $params = [], $context = null ) | ||
$view | string |
The view name. |
$params | array |
The parameters (name-value pairs) that will be extracted and made available in the view file. |
$context | object|null |
The context to be assigned to the view and can later be accessed via $context in the view. If the context implements yii\base\ViewContextInterface, it may also be used to locate the view file corresponding to a relative view name. |
return | string |
The rendering result |
---|---|---|
throws | yii\base\ViewNotFoundException |
if the view file does not exist. |
throws | yii\base\InvalidCallException |
if the view cannot be resolved. |
public function render($view, $params = [], $context = null)
{
$viewFile = $this->findViewFile($view, $context);
return $this->renderFile($viewFile, $params, $context);
}
Renders a view in response to an AJAX request.
This method is similar to render() except that it will surround the view being rendered with the calls of beginPage(), head(), beginBody(), endBody() and endPage(). By doing so, the method is able to inject into the rendering result with JS/CSS scripts and files that are registered with the view.
See also render().
public string renderAjax ( $view, $params = [], $context = null ) | ||
$view | string |
The view name. Please refer to render() on how to specify this parameter. |
$params | array |
The parameters (name-value pairs) that will be extracted and made available in the view file. |
$context | object|null |
The context that the view should use for rendering the view. If null, existing $context will be used. |
return | string |
The rendering result |
---|
public function renderAjax($view, $params = [], $context = null)
{
$viewFile = $this->findViewFile($view, $context);
ob_start();
ob_implicit_flush(false);
$this->beginPage();
$this->head();
$this->beginBody();
echo $this->renderFile($viewFile, $params, $context);
$this->endBody();
$this->endPage(true);
return ob_get_clean();
}
Renders the content to be inserted at the beginning of the body section.
The content is rendered using the registered JS code blocks and files.
protected string renderBodyBeginHtml ( ) | ||
return | string |
The rendered content |
---|
protected function renderBodyBeginHtml()
{
$lines = [];
if (!empty($this->jsFiles[self::POS_BEGIN])) {
$lines[] = implode("\n", $this->jsFiles[self::POS_BEGIN]);
}
if (!empty($this->js[self::POS_BEGIN])) {
$lines[] = Html::script(implode("\n", $this->js[self::POS_BEGIN]));
}
return empty($lines) ? '' : implode("\n", $lines);
}
Renders the content to be inserted at the end of the body section.
The content is rendered using the registered JS code blocks and files.
protected string renderBodyEndHtml ( $ajaxMode ) | ||
$ajaxMode | boolean |
Whether the view is rendering in AJAX mode. If true, the JS scripts registered at POS_READY and POS_LOAD positions will be rendered at the end of the view like normal scripts. |
return | string |
The rendered content |
---|
protected function renderBodyEndHtml($ajaxMode)
{
$lines = [];
if (!empty($this->jsFiles[self::POS_END])) {
$lines[] = implode("\n", $this->jsFiles[self::POS_END]);
}
if ($ajaxMode) {
$scripts = [];
if (!empty($this->js[self::POS_END])) {
$scripts[] = implode("\n", $this->js[self::POS_END]);
}
if (!empty($this->js[self::POS_READY])) {
$scripts[] = implode("\n", $this->js[self::POS_READY]);
}
if (!empty($this->js[self::POS_LOAD])) {
$scripts[] = implode("\n", $this->js[self::POS_LOAD]);
}
if (!empty($scripts)) {
$lines[] = Html::script(implode("\n", $scripts));
}
} else {
if (!empty($this->js[self::POS_END])) {
$lines[] = Html::script(implode("\n", $this->js[self::POS_END]));
}
if (!empty($this->js[self::POS_READY])) {
$js = "jQuery(function ($) {\n" . implode("\n", $this->js[self::POS_READY]) . "\n});";
$lines[] = Html::script($js);
}
if (!empty($this->js[self::POS_LOAD])) {
$js = "jQuery(window).on('load', function () {\n" . implode("\n", $this->js[self::POS_LOAD]) . "\n});";
$lines[] = Html::script($js);
}
}
return empty($lines) ? '' : implode("\n", $lines);
}
Defined in: yii\base\View::renderDynamic()
Renders dynamic content returned by the given PHP statements.
This method is mainly used together with content caching (fragment caching and page caching) when some portions of the content (called dynamic content) should not be cached. The dynamic content must be returned by some PHP statements.
public string renderDynamic ( $statements ) | ||
$statements | string |
The PHP statements for generating the dynamic content. |
return | string |
The placeholder of the dynamic content, or the dynamic content if there is no active content cache currently. Note that most methods that indirectly modify layout such as registerJS() or registerJSFile() do not work with dynamic rendering. |
---|
public function renderDynamic($statements)
{
if (!empty($this->cacheStack)) {
$n = count($this->dynamicPlaceholders);
$placeholder = "<![CDATA[YII-DYNAMIC-$n]]>";
$this->addDynamicPlaceholder($placeholder, $statements);
return $placeholder;
}
return $this->evaluateDynamicContent($statements);
}
Defined in: yii\base\View::renderFile()
Renders a view file.
If $theme is enabled (not null), it will try to render the themed version of the view file as long as it is available.
The method will call yii\helpers\FileHelper::localize() to localize the view file.
If renderer is enabled (not null), the method will use it to render the view file. Otherwise, it will simply include the view file as a normal PHP file, capture its output and return it as a string.
public string renderFile ( $viewFile, $params = [], $context = null ) | ||
$viewFile | string |
The view file. This can be either an absolute file path or an alias of it. |
$params | array |
The parameters (name-value pairs) that will be extracted and made available in the view file. |
$context | object|null |
The context that the view should use for rendering the view. If null, existing $context will be used. |
return | string |
The rendering result |
---|---|---|
throws | yii\base\ViewNotFoundException |
if the view file does not exist |
public function renderFile($viewFile, $params = [], $context = null)
{
$viewFile = $requestedFile = Yii::getAlias($viewFile);
if ($this->theme !== null) {
$viewFile = $this->theme->applyTo($viewFile);
}
if (is_file($viewFile)) {
$viewFile = FileHelper::localize($viewFile);
} else {
throw new ViewNotFoundException("The view file does not exist: $viewFile");
}
$oldContext = $this->context;
if ($context !== null) {
$this->context = $context;
}
$output = '';
$this->_viewFiles[] = [
'resolved' => $viewFile,
'requested' => $requestedFile
];
if ($this->beforeRender($viewFile, $params)) {
Yii::debug("Rendering view file: $viewFile", __METHOD__);
$ext = pathinfo($viewFile, PATHINFO_EXTENSION);
if (isset($this->renderers[$ext])) {
if (is_array($this->renderers[$ext]) || is_string($this->renderers[$ext])) {
$this->renderers[$ext] = Yii::createObject($this->renderers[$ext]);
}
/* @var $renderer ViewRenderer */
$renderer = $this->renderers[$ext];
$output = $renderer->render($this, $viewFile, $params);
} else {
$output = $this->renderPhpFile($viewFile, $params);
}
$this->afterRender($viewFile, $params, $output);
}
array_pop($this->_viewFiles);
$this->context = $oldContext;
return $output;
}
Renders the content to be inserted in the head section.
The content is rendered using the registered meta tags, link tags, CSS/JS code blocks and files.
protected string renderHeadHtml ( ) | ||
return | string |
The rendered content |
---|
protected function renderHeadHtml()
{
$lines = [];
if (!empty($this->metaTags)) {
$lines[] = implode("\n", $this->metaTags);
}
if (!empty($this->linkTags)) {
$lines[] = implode("\n", $this->linkTags);
}
if (!empty($this->cssFiles)) {
$lines[] = implode("\n", $this->cssFiles);
}
if (!empty($this->css)) {
$lines[] = implode("\n", $this->css);
}
if (!empty($this->jsFiles[self::POS_HEAD])) {
$lines[] = implode("\n", $this->jsFiles[self::POS_HEAD]);
}
if (!empty($this->js[self::POS_HEAD])) {
$lines[] = Html::script(implode("\n", $this->js[self::POS_HEAD]));
}
return empty($lines) ? '' : implode("\n", $lines);
}
Defined in: yii\base\View::renderPhpFile()
Renders a view file as a PHP script.
This method treats the view file as a PHP script and includes the file. It extracts the given parameters and makes them available in the view file. The method captures the output of the included view file and returns it as a string.
This method should mainly be called by view renderer or renderFile().
public string renderPhpFile ( $_file_, $_params_ = [] ) | ||
$_file_ | string |
The view file. |
$_params_ | array |
The parameters (name-value pairs) that will be extracted and made available in the view file. |
return | string |
The rendering result |
---|---|---|
throws | Throwable |
public function renderPhpFile($_file_, $_params_ = [])
{
$_obInitialLevel_ = ob_get_level();
ob_start();
ob_implicit_flush(false);
extract($_params_, EXTR_OVERWRITE);
try {
require $_file_;
return ob_get_clean();
} catch (\Exception $e) {
while (ob_get_level() > $_obInitialLevel_) {
if (!@ob_end_clean()) {
ob_clean();
}
}
throw $e;
} catch (\Throwable $e) {
while (ob_get_level() > $_obInitialLevel_) {
if (!@ob_end_clean()) {
ob_clean();
}
}
throw $e;
}
}
Sets the asset manager.
public void setAssetManager ( $value ) | ||
$value | yii\web\AssetManager |
The asset manager |
public function setAssetManager($value)
{
$this->_assetManager = $value;
}
Defined in: yii\base\View::setDynamicPlaceholders()
Sets a list of placeholders for dynamic content. This method is used internally to implement the content caching feature.
public void setDynamicPlaceholders ( $placeholders ) | ||
$placeholders | array |
A list of placeholders. |
public function setDynamicPlaceholders($placeholders)
{
$this->dynamicPlaceholders = $placeholders;
}
Defined in: yii\base\Component::trigger()
Triggers an event.
This method represents the happening of an event. It invokes all attached handlers for the event including class-level handlers.
public void trigger ( $name, yii\base\Event $event = null ) | ||
$name | string |
The event name |
$event | yii\base\Event|null |
The event instance. If not set, a default yii\base\Event object will be created. |
public function trigger($name, Event $event = null)
{
$this->ensureBehaviors();
$eventHandlers = [];
foreach ($this->_eventWildcards as $wildcard => $handlers) {
if (StringHelper::matchWildcard($wildcard, $name)) {
$eventHandlers[] = $handlers;
}
}
if (!empty($this->_events[$name])) {
$eventHandlers[] = $this->_events[$name];
}
if (!empty($eventHandlers)) {
$eventHandlers = call_user_func_array('array_merge', $eventHandlers);
if ($event === null) {
$event = new Event();
}
if ($event->sender === null) {
$event->sender = $this;
}
$event->handled = false;
$event->name = $name;
foreach ($eventHandlers as $handler) {
$event->data = $handler[1];
call_user_func($handler[0], $event);
// stop further handling if the event is handled
if ($event->handled) {
return;
}
}
}
// invoke class-level attached handlers
Event::trigger($this, $name, $event);
}
Event Details
An event that is triggered by beginBody().
An event that is triggered by endBody().