Desde que Yii se actualizo a la versión 2.X, el orden de los archivos, y el como se trabajan e instalan los widgets ha cambiado. Debo decir que la Versión 2.x, me ha gustado, ya que encuentro que el nuevo orden es más lógico como arquitectura MVC y facilita entenderla y encontrar los archivos para editar.

Para aprender a instalar widgets o exenciones debemos conocer primero a “Composer”.

Composer

Segun Don Wikipedia, Compositor es un gestor de paquetes a nivel de aplicación para el lenguaje de programación PHP que ofrece un formato estándar para la gestión de dependencias de software PHP y bibliotecas necesarias. Fue desarrollado por Nils Adermann y Jordi Boggiano, que siguen para administrar el proyecto. Comenzaron el desarrollo en abril de 2011 y lanzado por primera vez el 1 de marzo de 2012.  Compositor está fuertemente inspirado por NGP” de Node.js y “bundler” de Ruby. 

Como experiencia personal facilita y agiliza la instalación de los widgets y exenciones ya que lo descarga e integra de forma automática, luego basta llamar al widget y implementarlo donde deseamos.

Instalación de Composer

1- ir al proyecto, al directorio donde se encuentra los archivos yii, yii.bat, etc.

2 – Descargar el instalador de Composer.

curl -sS https://getcomposer.org/installer | php

3- listo, el directorio ahora tendra el archivo composer.phar

composer

Instalación de Widgets

Lo bueno de Yii es la extensa documentación y la comunidad activa que esta siempre generando widgets o extenciones evitando muchas veces reinvetar la reuda, perdiendo horas codificando algo que alguien ya lo codifico y lo probo. Les dejo algunos widgets :

Por ejemplo instalemos CKEditor: Es un widget para la edición de áreas de texto, por ejemplo post de un blog, etc

1- ir al directorio donde tenemos “composer.phar”

2- abrir alguna consola y ejecutar:

composer require 2amigos/yii2-ckeditor-widget:~1.0

3- ahora vamos a la vista del create, ubicada en “views/nombre_tabla/_form.php”

Agregamos :

use dosamigos\ckeditor\CKEditor;

y remplazamos el área de texto generado anteriormente por defecto con el CRUD, por lo siguiente:

<?= $form->field($model, 'text')->widget(CKEditor::className(), [
        'options' => ['rows' => 6],
        'preset' => 'basic'
    ]) ?>

y listo 🙂

ckeditor el código completo de la vista (_form.php):

<?php

use yii\helpers\Html;
use yii\widgets\ActiveForm;
use dosamigos\ckeditor\CKEditor;

/* @var $this yii\web\View */
/* @var $model app\models\Views */
/* @var $form yii\widgets\ActiveForm */
?>

<div class="views-form">

    <?php $form = ActiveForm::begin(); ?>

    <?= $form->field($model, 'title')->textInput(['maxlength' => true]) ?>

    <?= $form->field($model, 'id_rol')->textInput() ?>

    <?= $form->field($model, 'content')->widget(CKEditor::className(), [
        'options' => ['rows' => 6],
        'preset' => 'basic'
    ]) ?>

    <div class="form-group">
        <?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
    </div>

    <?php ActiveForm::end(); ?>

</div>

Saludos