Symfony: tutorial 15: los tests automáticos, funcionales, de aceptación, unitarios, de infraestructura..

2019-05-14 - Categorías: General / GNU/Linux / PHP / Symfony
Automatizando las pruebas unitarias y funcionales en Symfony..

Aquí estoy de nuevo con otro howto o tutorial de la serie de tutoriales de iniciación a Symfony sobre éste framework tan cojonudo. Hoy llegamos a cómo automatizar las pruebas de tu aplicación web. Automatizar las pruebas y pasar los tests puede verse como un juego en el que tenemos que conseguir un buen porcentaje o puntos, para estar seguros de que todo funciona. Es bien divertido trabajar con esto.. ?

Imagina que vas a entregar una web, o una nueva funcionalidad. La pruebas y pruebas, pensando que todo va bien. Pero cada día tiene más cosas, más zonas que comprobar, añadimos algo en un fichero que pensamos que no tiene relación con otra cosa. Pero llega el día de la puesta en producción, y empieza a romperse por los rincones que menos habías pensado ?

Continuar leyendo..

Migrando de Ubuntu Server 16 a 18 con Virtualmin

2019-04-23 - Categorías: GNU/Linux
Virtualmin home
Página de inicio de Virtualmin con Webmin..

Llevo unos cuantos días sin escribir nada, pero es que intento sacar tiempo de debajo de las piedras y no hay manera. A ver si no pierdo las buenas costumbres y puedo seguir escribiendo más a menudo. El caso es que estoy revisando uno de los servidores que administro, para actualizarlo a la última versión, y optimizarlo tanto en costes como en rendimiento. Así que aquí estoy de nuevo compartiendo este sencillo HOWTO para migrar un servidor completo con Virtualmin.

Primero que todo tengo que presentar a Virtualmin para el que no lo conozca, es un panel de control del tipo Cpanel o Plesk. Funciona muy bien y tiene una versión gratuita con la que puedes tener correos electrónicos, antivirus, anti-spam, fail2ban, SSH, FTP, servidor de páginas web Apache, Mariadb, Mysql, Postgress, servidor de DNS.. etcétera.

Continuar leyendo..

Magento 2: haciendo scripts externos en PHP

2019-04-06 - Categorías: Magento / PHP
Haciendo scripting de Magento 2 para línea de comandos..

Estar participando en grandes proyectos con Magento 2 es todo un privilegio, un honor. Con esto, que últimamente estoy investigando sobre cómo programar en Magento 2. Así que antes de entrar al tajo con el desarrollo de los módulos, programación de la plantilla (frontend), o programación para el panel de control (backend).. podemos empezar a juguetear con scripts externos a Magento que bootstrapean toda la aplicación para tenerlo todo disponible.

Me explico, el hacer scripts externos a Magento es la mejor manera de comenzar a probar los fragmentos de código que vamos a necesitar después en módulos, frontend y/o backend. Es decir, si vamos a necesitar una sección, que te liste ciertos tipos de productos/pedidos/categorías/usuarios.. lo mejor es probar estos listados en otra parte. Mejor probamos en estos scripts externos, para luego incluirlos con toda su cáscara de frontend o backend, según proceda.

Continuar leyendo..

Magento 2: automatizando el despliegue continuo

2019-03-31 - Categorías: GNU/Linux / Magento / PHP / Symfony
Magento 2 y el despliegue contínuo..

¡Hola de nuevo! Últimamente estoy jugueteando mucho con Magento 2, poniéndome al día con todas las nuevas mejoras que trae. Cierto es que la gente por los foros habla de muchos problemas con las versiones 2.0, 2.1, 2.2.. Pero pienso que es normal, ya que se ha hecho un remake total de todo el código fuente de Magento.

Magento es un CMS para eCommerce enorme, tiene una gran cantidad de funcionalidades ya incorporadas de casa. Por otro lado, necesitas de un servidor potente para hacerlo correr. Pero tienes un punto de partida muy muy bueno, comparado por ejemplo con Prestashop, Sylius o WordPress con Woocommerce. Quizá incluso te puedes evitar un desarrollo a medida o la instalación de muchos módulos con sus correspondientes personalizaciones si es que Magento 2 ya dispone de las funcionalidades que necesitas.

Continuar leyendo..

Symfony: tutorial 14: navegando con DomCrawler, BrowserKit y CssSelector

2019-03-23 - Categorías: PHP / Symfony
Navegando por páginas web con Symfony..

Hoy les traigo otro tutorial sobre Symfony. Siguiendo con la serie de tutoriales de iniciación a Symfony, hoy llegamos a cómo hacer un programa que navegue por las páginas web en Symfony. Es decir, los fundamentos de cómo utilizar el DomCrawler, el BrowserKit y el CssSelector de Symfony.

Esto puede servir para dos cosas. La primera utilidad es para comprobar que el proyecto en el que estamos trabajando funciona como debe ser. Podemos automatizar pruebas funcionales navegando por el proyecto, comprobando que los resultados son los esperados, mientras que desarrollamos y antes de que llegue a producción ningún fallo. La segunda utilidad es para navegar por páginas web remotas que estén en servidores remotos, no en local. Quizá necesitamos hacer comprobaciones en producción, o puede que necesitemos obtener contenidos, información relevante, o ficheros remotos alojados en páginas web mediante el protocolo HTTP que necesitemos recoger por alguna razón. Es decir, la segunda utilidad es para conectar tu proyecto con sistemas informaticos remotos mediante el protocolo HTTP.

Continuar leyendo..

GNU/Linux: terabytes de nube privada con la Raspberry Pi y Syncthing

2019-03-15 - Categorías: General / GNU/Linux
Syncthing y la Raspberry Pi

He seguido jugando para ver hasta donde puede llegar este pequeño ordenador de poco más de 30€, la Raspberry Pi. Una joya de la informática, que junto a Syncthing, otra joya de la informática, hacen una combinación explosiva. Así que aquí estoy escribiendo éste HOWTO sobre servidores para montar una nube de terabytes de almacenamiento sincronizado y privado en tu propia casa, local o en varios lugares remotos.

Sólo por el coste de tus PCs, sin pagar nada a una empresa, sin que tus datos estén copiados en ordenadores que no son tuyos, y sin que tus datos estén copiados en el extranjero. Es decir, tus datos ya no tendrán que estar almacenados en ningún servidor externo en ninguna empresa. Todo sincronizado entre tus móviles, ordenadores y la Raspberry Pi. Además, podrás disfrutar de tantos terabytes como quieras sin coste mensual, sólo necesitas tener los discos externos que quieras y la Raspberry Pi encendida.

Continuar leyendo..

Symfony: tutorial 13: enganchándonos a los eventos

2019-03-09 - Categorías: PHP / Symfony
Heart beat

Siguiendo con la puesta al día que llevo con Symfony y Flex, llegamos a los eventos. Engancharnos a los eventos es una forma de editar el comportamiento natural de los proyectos Symfony. En el proceso de una petición HTTP al servidor, en Symfony ocurren muchas cosas. Durante ese proceso, se van ejecutando una serie de tareas en orden. A la vez que se procesan esas tareas, se van disparando una serie de señales. Estan señales definen los eventos. Y a su vez podemos engancharnos a estas señales para personalizar el funcionamiento de la aplicación web.

Es decir, cuando un navegador hace una petición a un proyecto web Symfony, éste la recibe con el fichero public/index.php y comienza la ejecución de todo el framework junto con todo lo que hayamos construido, además de todos los componentes extra que le hayamos instalado. Ésta ejecución se hace en perfecta armonía, es una buena forma de comunicar componentes de Symfony entre sí, con los nuevos componentes que hayamos instalado, o para personalizar el comportamiento de nuestra aplicación.

Continuar leyendo..

Symfony: subiendo todo tipo de ficheros al servidor

2019-02-27 - Categorías: PHP / Symfony
Editando en Atom el controlador de subida de ficheros..

Hoy traigo un pequeño CODEKATA sobre una consulta que me ha hecho un lector. Se trata de unos códigos fuentes en Symfony 4 para subir ficheros al servidor, pero sin usar ningún componente extra en el proyecto.

Se trata de unas pocas modificaciones que le he hecho al código fuente de ejemplo de la documentación oficial. Así el código dejará de chequear la extensión, el mime type del fichero, y además de que no renombra los ficheros con un identificador único. Esto puede tener doble filo porque puedes acabar machacando los ficheros en nuevas subidas, pero siempre se le puede añadir después la lógica necesaria para comprobar si el fichero ya existía.. 😉

Continuar leyendo..

GNU/Linux: montando un centro multimedia de salón con la Raspberry Pi

2019-02-24 - Categorías: General / GNU/Linux
Raspberry Pi 3 Model B+

Ya tengo mi nueva y flamante Raspberry Pi 3 B+. Llevo un par de meses probándola a ver cómo funciona, hasta donde puede llegar, funcionalidades, etc.. Estoy como niño con juguete nuevo, es brillante, una joya de la informática. Una maravilla para empezar a hacer mis primeros pinitos en el IoT o creando cualquier dispositivo que necesite de un ordenador embebido de bajo coste.

La Raspberry Pi 3 B+ tiene un procesador ARM de 4 núcleos de 64 bits a 1,4 GHzs y 1 GB RAM que apenas consume. Funciona con un cargador de móvil y cabe en la palma de una mano, con lo que se puede instalar en cualquier sitio y apenas se nota el consumo eléctrico. Arranca muy rápido en apenas 10-20 segundos veo el escritorio, corre vídeos, fotos, navegador, juegos ligeros, y programas ofimáticos del tipo de LibreOffice que vienen ya preinstalados. En fin, una maravilla..

Continuar leyendo..

Datatables y Symfony: cargando tablas con cantidades ingentes de datos

2019-02-19 - Categorías: JavaScript / PHP / Symfony
Symfony y Datatables, cargando cantidades ingentes de datos mediante AJAX.

Continuando con un post anterior sobre mostrar tablas de datos interactivas, o este otro relacionado sobre Datatables con botones de descarga.. traigo hoy otro code-kata, hecho en Symfony 4 para probar el Datatables más a fondo. En aquel post empecé a testear el Datatables con pocos datos. Datatables es un plugin de jQuery con el que en poco tiempo, listas, ordenas y filtras tablas de datos de forma muy profesional.

Ahora estoy probando cómo funciona sobre un proyecto con ingentes cantidades de datos, en concreto con una tabla con 622,001 registros. Llegado a éste extremo, no puedes cargar el 100% de los datos en el servidor, enviarlos al navegador, y pintarlos. Si lo haces, el navegador se sobrecargará, no podrá pintar la tabla, o irá muy muy lento.

Continuar leyendo..

Actualizando aplicaciones web de Symfony 3 al 4

2019-02-17 - Categorías: PHP / Symfony

Una tarea que tarde o temprano llega es el actualizar a la última versión de Symfony. Si queremos estar al día de todas las nuevas mejoras, que la aplicación funcione lo mejor posible, con todos los parches, lo más rápido posible.. llegaremos a esta tarea.

Actualizar de la 1 a la 2 no lo he vivido, pero tengo entendido que no servía casi nada de la estructura de códigos montada. De la versión 2 a la 3 sí que lo he vivido; habían muchas funcionalidades obsoletas, había que actualizar paulatinamente hasta la versión 2.7 o la 2.8, si mal no recuerdo, para finalmente saltar a la 3 sin que todo petara. Ahora en el salto de la versión 3 a la 4 todo es bastante fácil, o por lo menos así lo he visto.

Continuar leyendo..

Datatables: listando y filtrando tablas de datos con JavaScript

2019-02-11 - Categorías: General / JavaScript
Datatables simple, cargando desde HTML los datos
Proyecto de pruebas en el que se listan sitios web bajo estudio SEO.

Ya estoy de nuevo por aquí compartiendo una verdadera joya del software, el Datatables. Esta es una herramienta para desarrollo frontend, que mediante JavaScript, crea unas tablas de datos muy profesionales para tus proyectos en muy poco tiempo. Se trata de un plugin de jQuery, que le da vitaminas a la presentación de datos en el navegador del cliente.

JavaScript actúa en la parte de frontend, es decir, tenemos que enviarle al navegador el HTML, CSS y JavaScript con el Datatable configurado. Entonces, en el navegador del cliente, mediante JavaScript, se regenerará el contenido web de la tabla para hacer los listados, ordenados y filtrados de la tabla de datos.

Continuar leyendo..

© 2024 JnjSite.com - MIT license

Sitio hecho con WordPress, diseño y programación del tema por Jnj.