Instalación y configuración de Yii framework

Yii es un conocido framework en PHP de alto rendimiento, especialmente orientado a aplicaciones web. En este post te contamos cómo instalarlo en nuestros planes de hosting, además de señalarte algunas de sus ventajas.

¿Aún no conces Yii?

Te recomiendo que le des un vistazo a su página web oficial o revises la guía definitiva en castellano. Tal como se definen ellos:

Yii es un framework PHP basado en componentes de alta performance para desarrollar aplicaciones Web de gran escala. El mismo permite la máxima reutilización en la programación web y puede acelerar el proceso de desarrollo. El nombre Yii (pronunciado /i:/) es por fácil (en inglés: easy), eficiente (en inglés: efficient) y extensible (en inglés: extensible).

Las ventajas son muchas, puesto que un framework, resumidamente, es un compendio de herramientas creadas por profesionales de la programación (en la mayoría de los casos). Esto para nosotros es una enorme ventaja, ya que estas herramientas han sido probadas y arregladas hasta el cansancio. Además, puesto que un framework (como anteriormente mencionaba) son herramientas, nos consolidan de una excelente base. Podemos pasar directamente a desarrollar, y enfocarnos en lo importante de nuestro sitio web, en lugar de perder el tiempo enformularios de log-in/out o tareas similares.

Para ser un poco más específicos, YII cuenta con herramientas como:

  • Patrón de diseño MVC (modelo vista controlador): Esta es una herramienta muy ventajosa, ya que nos permite mantener nuestro espacio de trabajo sumamente ordenado. Ideal para trabajar con un proyecto que alberga un grupo de programadores (aunque también es una excelente práctica utilizarlo cuando estamos solos, de modo que, cuando ingresen personas a nuestro trabajo, ya tengamos todo ordenado).
  • Orientado a objetos: YII framework está completamente orientado a objetos, lo cual es una excelente práctica de programación: mantiene el código ordenado, limpio (si bien esto depende mucho del programador) y de fácil manipulación/mantenimiento.
  • Validadores para los formularios: Esta es una excelente herramienta que nos provee una forma de validar los datos que se ingresan en un formulario.
    public function rules()
    {
        return array(
            array('title, body, file, categoryId', 'required')
        );
    }

    En donde decimos que los campos title, body, file y categoryId son requeridos (el formulario no se envía si éstos están vacíos). Además, si necesitamos una validación propia, podemos hacer algo como:

    public function rules()
    {
        return array(
           array('password', 'passwordStrength', 'strength' => 'weak'),
        );
    }
    
    public function passwordStrength($attribute, $params)
    {
        if ($params['strength'] === 'weak') {
            $pattern = '/^(?=.*[a-zA-Z0-9]).{5,}$/';  
        } elseif ($params['strength'] === 'strong') {
            $pattern = '/^(?=.*d(?=.*d))(?=.*[a-zA-Z](?=.*[a-zA-Z])).{5,}$/';  
        }
     
        if(!preg_match($pattern, $this->$attribute)) {
          $this->addError($attribute, 'tu password no es muy segura!');
        }
    }
  • Completo sistema de autentificación y autorización: El cual, por cierto, podemos configurar para que trabaje con SESSION o COOKIE (aunque por defecto, se utiliza SESSION).
    $identity = new UserIdentity($username, $password);
    if ($identity->authenticate()) {
        // Logueamos el usuario
        Yii::app()->user->login($identity);
    } else {
        // Hubo un error, por ende lo mostramos
        echo $identity->errorMessage;
    }
    
    // Deslogueamos el usuario
    Yii::app()->user->logout();

    Y ahora pasamos a la clase UserIdentity:

    class UserIdentity extends CUserIdentity
    {
        public function authenticate()
        {
            // Buscamos al usuario en la base de datos
            $record = User::model()->findByAttributes(array('username' => $this->username));
            if ($record === null) {
                // Usuario inexistente
                $this->errorCode = self::ERROR_USERNAME_INVALID;
            } else if ($record->password !== md5($this->password)) {
                // Error en la contraseña
                $this->errorCode = self::ERROR_PASSWORD_INVALID;
            } else {
                // Si llegamos a este punto, entonces decimos que no hay error
                $this->errorCode = self::ERROR_NONE;
            }
    
            return !$this->errorCode;
        }
    }
    
  • Traducción de mensajes de una forma muy simple: Fácil y con excelentes resultados, esta herramienta nos permite crear sitios multi-idioma en poco tiempo. Lo único que debemos hacer es crear los textos en los diferentes idiomas que queremos implementar en el sitio, y YII se encargará de hacer los reemplazos con el método Yii::t().
  • Y lo más importante, desde mi punto de vista, es que YII es muy seguro y robusto. Podés ver el detalle de cada una de las funcionalidades acá.

Instalando YII en Duplika

Éste es un proceso sumamente fácil. Lo primero que debemos hacer es conectarnos al FTP con nuestras credenciales. Una vez allí, nos dirigimos a la carpeta public_html y procedemos a volcar todo nuestro proyecto. Una vez que finalice la subida, te alegrarás de saber que eso es todo.

Si hacés uso de bases de datos, simplemente debés modificar el archivo main.php de la carpeta protected/config/ mediante la siguiente forma:

'db' => array(
    'connectionString'  => 'mysql:host=localhost;dbname=NOMBRE DE LA BASE DE DATOS',
    'emulatePrepare'    => true,
    'username'          => 'NOMBRE DE USUARIO',
    'password'          => 'CONTRASEÑA',
    'charset'           => 'utf8'
),

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *