En la clase anterior les expliqué cómo podemos hacer que nuestros sistemas sean más flexible con el uso de interfaces.
En teoría, una interfaz, en la programación orientada a objetos, nos permite que podamos crear diferentes implementaciones de una clase o componente, por ejemplo diferentes implementaciones de un repositorio.
Otros tutoriales por lo general se detienen aquí, porque en la práctica no es tan sencillo, pero sí es posible y yo hoy se los demostraré con el siguiente videotutorial, donde vamos a crear un repositorio de secciones que va a usar colecciones (arrays) en vez de bases de datos y Eloquent. Pero antes de comenzar veremos un par de conceptos importantes:
El framework Laravel 4 cuenta con una característica importante, y es que fue reconstruído de manera modular, de tal forma que sus componentes pudieran ser utilizados independientemente.
Algunas veces decidimos no utilizar un framework full-stack en nuestros proyectos con el fin de llevar a cabo una organización personalizada de los directorios o por cualquier otro motivo, pero por todos es conocido aquel dicho de no reinventar la rueda; así que si existen herramientas tan buenas como los ORM no hay razón para que aún estemos escribiendo sentencias SQL directamente en nuestro código (a menos que, una vez más, sea un motivo de fuerza mayor debido a las particularidades del proyecto).
Hay diversas soluciones libres para la implementación de un ORM en un proyecto PHP, como PHP Active Record, pero dado que los lectores de este blog somos amantes de Laravel, preferimos Eloquent para llevar a cabo esta tarea. Así que vamos a ello…
En este nuevo videotutorial vamos a aprender cómo paginar los items del módulo de secciones con Laravel y, por supuesto, crearemos una nueva prueba funcional con Codeception.
La paginación puede ser un feature muy difícil de lograr con otros frameworks como Codeigniter, o peor aún si estamos trabajando con PHP plano. Pero con Laravel es muy fácil y uno de mis features favoritos.
Básicamente con Eloquent, el ORM de Laravel o si usamos Fluent, el constructor de queries de Laravel simplemente tenemos que hacer lo siguiente:
Hoy vamos a programar el listado de secciones con Laravel, nuevamente vamos a escribir la prueba funcional con Codeception, y además les enseñaré a usar el componente Faker que está disponible y vamos a instalarlo con Composer.
El componente Faker nos permite generar datos aleatorios, los cuales son múy útiles al momento de crear nuestras pruebas y también para generar seeders para la base de datos como veremos en otro videotutorial más adelante.
Recuerden que para instalar un componente nuevo con Composer dentro de su proyecto deben editar el archivo composer.json y luego ejecutar composer update y si quieren saber qué paquetes pueden instalar, los tienen en Packagist.
Espero que disfruten el siguiente videotutorial, no olviden compartirlo:
Hoy vamos a aprender cómo eliminar una sección con Laravel, también seguiremos aprendiendo a escribir pruebas funcionales con Codeception, veremos un nuevo método «dontSeeRecord» y utilizaremos un formulario para hacer el llamado al método «destroy» de nuestro Resource controller (usando DELETE como método dentro del form).
También les hablaré un poco del principio DRY (Don’t repeat yourself o «No te repitas«) que nos explica que debemos evitar la duplicación de código tanto como sea posible, para ello haremos 3 pequeñas refactorizaciones en nuestro controlador, en la vista (donde aprenderemos a usar «@include» para incluir partials dentro de Blade) y en la prueba (donde aprenderemos cómo escribir métodos personalizados en Codeception)
En este nuevo videotutorial de Laravel, aprenderemos cómo actualizar un registro usando Eloquent, también aprenderemos a utilizar Form::model para completar los campos de los formularios en Blade, usaremos rutas con nombres en Laravel (named routes), y por supuesto vamos a probar nuestro módulo creando otra prueba funcional con Codeception.
En este nuevo video tutorial, aprenderemos cómo mostrar el detalle de un registro con Laravel, escribiremos el código para el controlador, la vista con Blade y por supuesto escribiremos una prueba funcional con Codeception, para continuar con el proceso de desarrollo orientado a pruebas (Behavior Driven Development).
En nuestro séptimo video tutorial vamos a unificar los dos proyectos en los que hemos estado trabajando hasta ahora: la guía para escribir pruebas con Codeception paso a paso, y nuestro proyecto para construir un CMS con Laravel.
Por otro lado este es un muy buen video tutorial si estás comenzando con Laravel, porque vamos a abordar los temas de rutas, vistas con Blade y Eloquent desde el nivel básico.
El siguiente video, vamos a escribir el código para agregar nuevas secciones a nuestro blog, usando behavior driven development (BDD).
NOTA: Revisa la lista de pasos al final del video de manera que puedas reproducirlos, sobretodo el paso 7 que no está explicado en el video.
Cuando trabajamos en proyectos con Frameworks modernos de PHP como Laravel o Symfony, podemos escribir pruebas funcionales.
Las pruebas funcionales se ejecutan más rápido que las pruebas de aceptación, además nos proveen errores detallados y nos permiten hacer comprobaciones adicionales a la base de datos etc.
En el siguiente video aprenderemos a instalar Codeception con Composer y escribiremos nuestra primera prueba funcional, espero que lo disfruten:
Styde usa cookies para guardar tus preferencias y para seguimiento anónimo AceptarLeer más
Privacy & Cookies Policy
Privacy Overview
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.