lunes, 10 de agosto de 2015

Conexion Base de datos Postgres con Yii

Bueno la segunda sesión empieza por autenticar Yii y conectando a una Base de datos Postgres "es una de las que más utilizo".

Una vez creado el proyecto, que lo habíamos tratado en el la sesión anterior:
http://yii-php-megam.blogspot.com/2015/08/crear-proyecto-en-yii-desde-cero.html, entonces realizaremos la conexión del proyecto.

Como primer paso tenemos:

1.- Abrir con un editor de texto el siguiente archivo:
miaplicacionyii/protected/config/main.php

y Copiamos lo siguiente (es mejor que elimines el contenido y reemplaces):

<?php

// uncomment the following to define a path alias
// Yii::setPathOfAlias('local','path/to/local-folder');

// This is the main Web application configuration. Any writable
// CWebApplication properties can be configured here.
return array(
        'language'=>'es',
        'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
        'name'=>'Alicuotas',

        // preloading 'log' component
//      'preload'=>array('log'),//ver las consultas

        // autoloading model and component classes
        'import'=>array(
                'application.models.*',
                'application.components.*',
        ),
     
        'modules'=>array(
                // uncomment the following to enable the Gii tool

                'gii'=>array(
                        'class'=>'system.gii.GiiModule',
                        'password'=>'dgamboa',
                        // If removed, Gii defaults to localhost only. Edit carefully to taste.
                        'ipFilters'=>array('127.0.0.1','::1'),
                ),

        ),

        // application components
        'components'=>array(
                'user'=>array(
                        // enable cookie-based authentication
                        'allowAutoLogin'=>true,
                ),
                // uncomment the following to enable URLs in path-format
                /*
                'urlManager'=>array(
                        'urlFormat'=>'path',
                        'rules'=>array(
                                '<controller:\w+>/<id:\d+>'=>'<controller>/view',
                                '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
                                '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
                        ),
                ),
                */
//              'db'=>array(
//                      'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/testdrive.db',
//              ),
                'db' => array (
'connectionString' => 'pgsql:host=localhost;dbname=tubasededatos',
'emulatePrepare' => true,
'username' => 'tuusuario',
'password' => 'tuclave',
'charset' => 'utf8',
),

                // uncomment the following to use a MySQL database
                /*
                'db'=>array(
                        'connectionString' => 'mysql:host=localhost;dbname=testdrive',
                        'emulatePrepare' => true,
                        'username' => 'root',
                        'password' => '',
                        'charset' => 'utf8',
                ),
                */
                'errorHandler'=>array(
                        // use 'site/error' action to display errors
                        'errorAction'=>'site/error',
                ),
                'log'=>array(
                        'class'=>'CLogRouter',
                        'routes'=>array(
                                array(
                                        'class'=>'CFileLogRoute',
                                        'levels'=>'error, warning',
                                ),
                                // uncomment the following to show log messages on web pages

                                array(
                                        'class'=>'CWebLogRoute',
                                ),

                        ),
                ),
        ),

        // application-level parameters that can be accessed
        // using Yii::app()->params['paramName']
        'params'=>array(
                // this is used in contact page
                'adminEmail'=>'webmaster@example.com',
        ),
); 

? >        
Como podrás ver nos conectamos a una base de datos alojada en el mismo equipo, si gustas puedes cambiar la palabra localhost por la ip de tu servidor de base de datos, al igual que el usuario y clave.

2.- Para conectarnos a nuestra base de datos y generar el MVC de cada una de nuestras tablas abrimos el siguiente archivo:
miaplicacionyii/protected/config/main.php

y habilitamos la parte de conexión con el módulo de generación de clases y vistas así, "te debe quedar de la siguiente manera":

'modules'=>array(
                // uncomment the following to enable the Gii tool

                'gii'=>array(
                        'class'=>'system.gii.GiiModule',
                        'password'=>'dgamboa',
                        // If removed, Gii defaults to localhost only. Edit carefully to taste.
                        'ipFilters'=>array('127.0.0.1','::1'),
                ),

        ),

Bueno, con las líneas anteriores podremos acceder a nuestra base de datos de la siguiente manera:

3.- Digita el siguiente url en tu navegador:

http://127.0.0.1/miaplicacionyii/index.php?r=gii/default/login

Ingresa la clave que digitaste en "password"


Ahora podrás ver las tablas de tu base de datos configurada:


En la siguiente sesion configuraremos la tabla usuario y autenticaremos con Yii.
Espero les haya gustado. Si te gusta comenta por favor.






 

martes, 4 de agosto de 2015

Crear proyecto en Yii desde Cero

Yii es un framework para lenguaje PHP, muy versatil con muchas funcionalidades y paquetes, tiene una amplia documentación, y diría yo muy sencillo de aprender, necesitas conocimientos de MVC con el fin de que puedas entenderlo más rápido, pero en este blog te enseñaremos paso a paso trucos con ejercicios desarrollados para que puedas desarrollar tu programa o sitio web de manera eficiente y con coste mínimo.

1) Bueno el primer paso para crear un proyecto en Yii, se necesitará que te bajes el motor de Yii del siguiente link: http://www.yiiframework.com/download/

2) En mi caso yo tengo Fedora en el cual ya he configurado Apache, asi que me saltaré este paso y lo único que mostraré son los pasos para crear el proyecto, una vez descargado debes realizar lo siguiente:

- En el directorio donde te has bajado digita el siguiente comando.
tar -xvzf yii-1.1.16.bca042.tar.gz (desempaqueta la carpeta yii-1.1.16.bca042)


- Para cambiar el nombre de la carpeta pon lo siguiente:

mv yii-1.1.16.bca042 motoryii

- Luego copia esta carpeta en el directorio apache:
cp -R motoryii /var/www/html

- Bueno, ahora si! al grano, creamos el proyecto de la siguiente manera.
Ingresamos al directorio:
cd /var/www/html/motor/framework

- Con permisos de ejecución escribimos el siguiente comando

 sudo php yiic.php webapp ../../miaplicacionyii
En el comando anterior estoy creando mi proyecto en Yii llamado miaplicacionyii de manera que me crea el directorio con las clases modelos y vistas que necesito para empezar a desarrollar mi programa.
La salida del comando ejecutado sera:

[root@orphaned framework]# sudo php yiic.php webapp ../../miaplicacionyii Create a Web application under '/var/www/html/miaplicacionyii'? (yes|no) [no]:yes 
AQUI TE DESPLEGARÁ UN SIN NÚMERO LÍNEAS QUE EL MOTOR YII EJECUTA PARA CREAR.

Al final tienes:

Your application has been created successfully under /var/www/html/miaplicacionyii.

Ahora la carpeta de tu proyecto tiene lo siguiente:



[root@orphaned html]# cd miaplicacionyii/
[root@orphaned miaplicacionyii]# ll
total 28
drwxrwxrwx  2 apache apache 4096 ago  4 23:14 assets
drwxr-xr-x  2 apache apache 4096 ago  4 23:14 css
drwxr-xr-x  2 apache apache 4096 ago  4 23:14 images
-rw-r--r--  1 apache apache  465 ago  4 23:14 index.php
-rw-r--r--  1 apache apache  468 ago  4 23:14 index-test.php
drwxr-xr-x 15 apache apache 4096 ago  4 23:14 protected
drwxr-xr-x  3 apache apache 4096 ago  4 23:14 themes


Lo único que necesitas verificar es en el navegador y tendrás así tu proyecto creado en Yii.




Eso es todo. En el siguiente blog mostraremos el contenido de las carpetas y aprenderemos a configurar el main.php de tu proyecto en yii