Instalar Yii Framework en Lamp
Para instalar Yii Framework en Lamp descargamos el Framework de su web http://www.yiiframework.com/doc/guide/1.1/es/quickstart.installation. Descomprimimos el paquete en la carpeta del servidor web /var/www le cambiamos el nombre para que se llame yii, con los siguientes comandos. Accedemos a http://localhost/yii/require-ments/index.php para comprobar que cumplimos los requerimientos principales, si nos falla algo tendríamos que instalar o activara alguna extensión de PHP o Apache. Creamos un proyecto desde la consola: Y nos...
Recortar imágenes con Jcrop y PHPThumb
Hoy vamos a ver como recortar imágenes con Jcrop y PHPThumb. Jcrop es un plugin para jQuery que nos permite seleccionar de forma visual un área de una imagen y guardar las coordenadas seleccionadas en un formulario que enviaremos a un script PHP el cual recortará la imagen. Para hacer efectivo el recorte utilizaremos la librería para PHP PHPThumb que es muy sencilla de utilizar y funciona estupendamente. El...
Crear plugins para controladores en Zend Framework 2
Los plugins nos van a permitir tener pequeñas clases para tareas específicas que podamos reutilizar fácilmente. Vamos a ver como crear plugins para controladores en Zend Framework 2 de forma muy sencilla. Crearemos dentro del directorio Controller de nuestro módulo, un directorio llamado Plugin. En meteremos los plugins. Por ejemplo, voy a crear un plugin que imprima hace cuanto tiempo fue una fecha. Modulo/src/Controller/Plugin/HaceCuantoPlugin.php <?php namespace Modulo\Controller\Plugin; use Zend\Mvc\Controller\Plugin\AbstractPlugin;...
Plantillas diferentes en cada módulo de Zend Framework 2
Como sabemos, en cada método action de un controlador podemos forzar el uso de una plantilla u otra incluso combinar varias vistas, pero no hasta ahora no teníamos una forma clara de automatizar este proceso, sin tener que escribir una línea de código en cada método action. Vamos a ver como automatizar el uso de plantillas diferentes en cada módulo de Zend Framework 2. En nuestro Module.php tendremos un...
Ejemplo PHP + POO + MVC
Seguro que algunos que hayan leído o visto algunos de los tutoriales o ejemplos que pongo sobre programación en PHP con y sin frameworks, pueden no estar de acuerdo conmigo en ciertos detalles, o incluso estar pensando «este chico no está programando verdaderamente orientado a objetos» o «no sigue el paradigma a rajatabla» (todo lo que explico lo hago desde mi punto de vista actual, nunca digo que sea...
ReCaptcha en Zend Framework 2
Instalamos el servicio ReCaptcha. Una vez instalado ya podemos utilizarlo en nuestros controladores. Ejemplo: public function captchaAction(){ $title="ReCaptcha en Zend Framework 2"; //Una vez nos registramos en ReCaptcha nos da una clave pública y otra privada $pubKey="string alfanumérico clave pública"; $privKey="string alfanumérico clave privada"; //Instanciamos el servicio ReCaptcha le pasamos las claves y las opciones. $recaptcha=new \ZendService\ReCaptcha\ReCaptcha($pubKey,$privKey,null, array("theme"=>"white","lang"=>"es")); //Si se ha enviado el captcha if(isset($_POST["recaptcha_challenge_field"])){ $result = $recaptcha->verify($_POST['recaptcha_challenge_field'],$_POST['recaptcha_response_field']); //Comprueba...
Internacionalización en Zend Framework 2
La internacionalización o traducción de sitios Web, es otra de las características importantes que nos facilita un Framework de desarrollo. Veamos como utilizar el componente de internacionalización en Zend Framework 2. Utilizaremos las sesiones y la base de datos para simular el comportamiento que podría tener la internacionalización en una aplicación real. En primer lugar, en nuestro module.config.php, tenemos que añadir los siguientes arreglos. En los que indicamos que...
Plugin params de ZF2 para el manejo de variables superglobales
El “plugin” params nos permite acceder de forma fácil a diferentes tipos de parámetros. Para conseguir el valor del nombre de un parámetro en un controlador, necesitaremos seleccionar el método apropiado para cada tipo de parámetro pasandole el name. Podemos conseguir los datos desde get o post, etc, no para sesiones. Ejemplos: $this->params()->fromPost('paramname');// Desde POST, es similar a $_POST['paramname'] $this->params()->fromQuery('paramname'); // Desde GET $this->params()->fromRoute('paramname'); //Desde las rutas definidas en...
Listas de control de acceso ACL en Zend Framework 2
En Zend Framewok 2 al igual que en otros frameworks, tenemos una funcionalidad muy interesante, las listas de control de acceso. Con ellas podemos definir una serie de roles para los usuarios y darles o quitarles permiso de acceso a ciertas partes de la aplicación. Ejemplo de implementación de ACL en Zend Framework 2: En nuestro module.config.php tenemos definidas estas rutas: A mi parecer la mejor forma de implementar...
Subir ficheros con Zend Framework 2
En general Zend Framework 2 no intenta alejarnos de PHP, por tanto nos da la posibilidad de utilizar sus herramientas o utilizar PHP puro, salvo algunas peculiaridades. Para subir ficheros con ZF2 no tenemos nada especial, nos permite utilizar $_FILES y la metodología clásica para subir ficheros en PHP y alguna función especifica. En un método action de un controlador: //Podemos usar este método o $_FILES if($this->request->getFiles("imagen")){ /* Esto...
Integrar Ajax en Zend Framework 2
Podemos utilizar Ajax en Zend Framework 2 de forma similar a como lo haríamos en otros frameworks. En Zend contamos con algunas funciones específicas para trabajar con Ajax. Veamos un ejemplo. La vista que hará la petición AJAX al dar click a un botón. <script> $(document).ready(inicio); function inicio(){ var x=$(".cargar"); x.click(cargar); function cargar(){ $.ajax({ async: true, type: "POST", url: "<?=$this->basePath("crud/usuariosajax")?>", success: function(datos){ $("#usuarios").html(datos); } }); return false; } }...
Helper identity en Zend Framework 2
El helper identity nos permite comprobar en las vistas (y en controladores también) si estamos identificados sin necesidad de pasar parámetros a la vista, sino que esta disponible en todas las vistas y controladores de la aplicación. Para poder utilizarlo tenemos que añadir el invocable del servicio de autenticación al service manager, esto se configura en el fichero config/autoload/global.php de la aplicación: De forma que ahora en una vista,...