Yii2 renderer
Provides visualization functionality (rendering views) to any component of yii2 application, (*1)
- simple sintax
- view is searched by classes inheritance
Installation
The preferred way to install this extension is through composer., (*2)
Either run, (*3)
php composer.phar require --prefer-dist iluhansk/yii2-renderer "*"
or add, (*4)
"iluhansk/yii2-renderer": "*"
to the require section of your composer.json
file., (*5)
Usage
Add RenderBehavior to target class:, (*6)
namespace common\components;
use \yii\base\Component;
use iluhansk\renderer\RenderBehavior;
class Car extends Component {
public function behaviors() {
return [
'renderer' => [
'class' => RenderBehavior::className(),
'baseClass' => __CLASS__,
'baseViewDir' => '@frontend/views/car',
'defaultView' => 'model',
'viewNotFound' => '-',
]
];
}
}
And use rendering in an place:, (*7)
use common\components\Car;
$car = new Car();
echo $car->render(); //render default view (in this example it is "model")
echo $car->render('options',['data'=>'passed','to'=>'view']); //render view "options"
Inside view you can access to object by var $context, (*8)
Example of view search process:
continue of example above:, (*9)
class Sedan extends Car {
...
}
class Econom extends Sedan {
...
}
$car = new Econom();
echo $car->render('options');
//First, a view "options" will be search at @frontend/views/car/sedan/econom directory
//If it is not found, then it will be search at @frontend/views/car/sedan directory
//If it is not found, then it will be search at @frontend/views/car (it from behavior field baseViewDir)
//If it is not found, then it will return viewNotFound text (in this example it is '-')