Cupón de descuento del 60% en el curso de Zend Framework 2
Hola amigos, como sabéis he publicado un curso de Zend Framework 2 y quiero regalaros un cupón de descuento del 60%, por ser visitantes de mi blog, para que podáis hacer el curso muy barato y podáis beneficiaros de lo que enseño en él. Considero que el curso merece mucho la pena y que es una oportunidad para que podáis aprender a programar con este framework PHP de una...
Curso de Zend Framework 2
Accede al curso pinchando aquí. He creado un nuevo vídeo curso de Zend Framework 2 en el que vas a aprender cómo utilizar cada una de las partes del framework de forma fácil y rápida. Al finalizar el curso serás capaz de desarrollar tus propias aplicaciones web completas con Zend Framework 2 o modificar las de otros. Este curso está diseñado para ser el más completo que existe y...
Instalar Doctrine 2 en Zend Framework 2
Doctrine es un ORM que nos permite abstraernos totalmente de la base de datos y trabajar directamente con objetos de forma más rápida y optima. Veamos como instalar Doctrine 2 en Zend Framework 2. El ORM que instalaremos contará con menos opciones de consola que las que tiene en Symfony pero al fin y al cabo el código funcionará de forma similar. Tendremos que tener instalado ZF2 y además...
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...
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,...