Crear bundles en Symfony2
Los bundles en Symfony2 son módulos o paquetes que nos permiten dividir nuestra aplicación en varias partes reutilizables. De forma que si tenemos una tienda online que además tiene un foro y un blog, podríamos tener un bundle para la tienda, otro para el foro y otro para el blog dentro del mismo proyecto de Symfony. Crear más o menos bundles depende de cada uno. En Symfony2 toda nuestra...
Instalar Symfony2
Veamos como instalar Symfony2 en Wamp, el proceso en Linux es más sencillo. En primer lugar debemos tener instalado: Un servidor de aplicaciones web en mi caso tengo Wamp en Windows. Debemos añadir al path la ruta del ejecutable de PHP. Composer para descargar y gestionar las dependencias del Framework. En su instalación solamente hay que indicarle la ruta del ejecutable de PHP y lo demás siguiente siguiente. GIT,...
Subir ficheros en Yii Framework
Veamos como subir ficheros en Yii framework. El controlador: public function actionIndex(){ $form=new UsuariosForm(); if(isset($_FILES["UsuariosForm"])){ //Instanciamos el subidor para el campo fichero del formulario $file=CUploadedFile::getInstance($form,"fichero"); //Nombre del fichero $name=time()."-".$file->getName(); //$file->getExtensionName() //Permitimos tres tipos de fichero if($file->getExtensionName()=="png" || $file->getExtensionName()=="pdf" || $file->getExtensionName()=="zip"){ //Guardamos el fichero $file->saveAs(Yii::getPathOfAlias("webroot")."/uploads/".$name); }else{ //Crear mensaje flash Yii::app()->user->setFlash('mensaje','Solo ficheros png, pdf o zip'); //Refrescamos pantalla $this->refresh(); } } $this->render('index',array( "form"=>$form )); } La vista: <h1>Subir ficheros con Yii</h1>...
CRUD con Yii Framework
Vamos a ver como hacer un CRUD con Yii Framework (Create,Read,Update,Delete) de una tabla de la BD pruebas llamada usuarios con las columnas id,email,password,nombre,apellido. El formulario: <?php class UsuariosForm extends CFormModel{ //Campos que tendrá el formulario public $nombre; public $apellido; public $password; public $email; //Reglas de validación public function rules(){ return array( //Estos campos serán obligatorios array('nombre, email, password,apellido', 'required', "message"=>"Este campo es obligatorio"), //Validando el nombre con una...
Validar datos fuera de formularios en Yii
Esta forma de validar es muy similar a como lo hace Codeigniter, es muy sencilla, y puede ser muy útil cuando los formularios por cualquier cuestión han sido creados manualmente o nos interesa validar algún dato aislado. Tenemos en una vista un formulario creado “a mano”: <form action="" method="post"> Email: <input type="email" name="email" value=""/> <input type="submit" name="enviar" value="Enviar"/> </form> Y validamos los datos en el controlador creando el objeto...
Crear el formulario solo con validación en el servidor en Yii
Utilizamos el modelo visto anteriormente. La vista usuarios: <h1>Formularios en Yii Framework</h1> <div class="form col-lg-10"> <?php $model=$formulario; //Formulario con validación en backend echo CHtml::beginForm(); ?> <?php //echo CHtml::errorSummary($model); ?> <div class="row"> <?php echo CHtml::activeLabel($model,'nombre'); ?> <?php echo CHtml::activeTextField($model,'nombre',array("class"=>"form-control")) ?> <?php echo CHtml::error($model,'nombre'); ?> </div> <div class="row"> <?php echo CHtml::activeLabel($model,'apellido'); ?> <?php echo CHtml::activeTextField($model,'apellido',array("class"=>"form-control")) ?> <?php echo CHtml::error($model,'apellido'); ?> </div> <div class="row"> <?php echo CHtml::activeLabel($model,'email'); ?> <?php echo CHtml::activeEmailField($model,'email',array("class"=>"form-control")) ?>...
Crear el formulario con validación en el cliente y servidor en Yii
Utilizamos el modelo del tutorial anterior. Hay que añadir esta hoja de estilos a la plantilla que utilizamos: <!--Validación formularios front-end--> <link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/css/form.css" /> La vista usuarios: <h1>Formularios en Yii Framework</h1> <div class="form col-lg-10"> <?php //Formulario con validación en frontend y backend $model=$formulario; $form=$this->beginWidget('CActiveForm',array( "method"=>"POST", "action"=>"", "enableClientValidation"=>true, "clientOptions"=>array( "validateOnSubmit"=>true, "validateOnChange"=>true, "validateOnType"=>true ) )); ?> <!--Este metodo imprime un resumen de los errores del formulario-->...
Modelos en Yii Framework
Hay dos tipos de modelos en Yii Framework, los modelos de interacción con la base de datos y los modelos de formulario. Vamos a ver el primer tipo de modelo. Lo ideal como en todos los frameworks es utilizar de forma estricta el ORM que estos incluyen, en el caso de Yii Active Record, de forma que cada modelo que creamos represente a una tabla de la base de...
Conexión a la base de datos en Yii
Para configurar la conexión a la base de datos en Yii Framework, tenemos que definir un array en el fichero de configuración principal de la aplicación. Yii nos da la posibilidad de conectarnos a diferentes tipos de sgbd, para ello incluye drivers para MySQL, SQLite y PostgreSQL. Estos son los diferentes strings de conexión: SQLite: sqlite:/path/to/dbfile MySQL: mysql:host=localhost;dbname=testdb PostgreSQL: pgsql:host=localhost;port=5432;dbname=testdb Ejemplo de conexión a la base de...
Conseguir información del cliente con ChttpRequest en Yii
Esto no es más que una serie de métodos que trabajan con variables superglobales especialmente con $_SERVER. Veamos un ejemplo de su uso en una vista. <h1>CHttpRequest $_SERVER en Yii</h1> <ul class="list-group"> <li class="list-group-item"><?php echo Yii::app()->request->baseUrl //URL base ?></li> <li class="list-group-item"><?php echo Yii::app()->request->requestUri //URL solicitada?></li> <li class="list-group-item"><?php echo Yii::app()->request->pathInfo //Acción en la que estamos?></li> <li class="list-group-item"><?php echo Yii::app()->request->urlReferrer //De donde vengo?></li> <li class="list-group-item"><?php echo Yii::app()->request->userAgent //Navegador y sistema del...
Redireccionar en Yii
Vamos a ver las diferentes opciones que tenemos para redireccionar en Yii. Las redirecciones forman parte del componente controller. En cualquier controlador por un lado podemos redireccionar: $this->redirect(Yii::app()->request->baseUrl."/holamundo"); O bien refrescar:...
Crear helpers en Yii
Veamos como crear helpers en Yii. Lo recomendable es crear el fichero protected/components/helpers.php y ahí crear todas las funciones helper que necesitemos. El siguiente paso será incluir este archivo de helpers en el fichero de principal de configuración justo antes del array de configuración, de esta forma: //Cargar helpers require_once( dirname(__FILE__) . ‘/../components/helpers.php’); Ejemplo: <?php // protected/components/helpers.php // Aqui van los helpers //Comprobar que no existe la función if(!function_exists("imprimirTiempo")){...