Clases avanzadas en JS

En el artículo anterior escribí una manera simple de tener clases en JS sin tener que usar ES6 aunque demasiado simples si queremos hacer uso de metodologías avanzadas de OOP.

Para paliar la deficiencia de OOP en Javascript, durante muchos años usé un framework llamado Qooxdoo el cual aporta todo un sistema de clases bastante avanzados que me simplificó la vida en proyectos bastante grandes de Javascript pero hoy en día encontré una alternativa más liviana aunque no aporta la misma funcionalidad.

Separador

Clases simples en JS

Una de las cosas que siempre he echado de menos en Javascript es tener un buen sistema de clases donde se puedan implementar aplicaciones haciendo uso de patrones orientados a objetos. En ES6 han agregado el soporte para clases aunque bastante limitado para mi gusto siendo una lástima no haber aprovechado la nueva especificación para crear un lenguaje orientado a objetos mucho más robusto.

Si eres como yo que huye de los transpiladores hasta que ES6 esté bien soportado hay un paquete para node que permite tener un sistema bastante simple de clases con herencia.

Separador

Uso de wrappers de escritura

PHP hace uso de wrappers para leer o escribir datos en los flujos de entrada o salida. Esto nos permite seleccionar un wrapper basado en algunas condiciones y dejar el resto del código sin modificar.

Sin embargo, escribir en el flujo de salida cuando queremos enviar información al navegador puede no tener el resultado esperado.

Separador

Escanear directorios recursivamente

En el artículo anterior hablé de los iteradores que aporta PHP para acceder al sistema de archivos y puse una función para eliminar directorios de manera recursiva.

Ahora pondré una función que devuelve todos los archivos y directorios de un directorio de manera recursiva. También se puede filtrar el resultado para devolver solamente los directorios o los archivos.

Separador

Sistema simple de plantillas en PHP

Con una sola clase tendremos la posibilidad de manejar templates de una forma sencilla. Las plantillas son renderizadas sin hacer uso de mucha lógica lo que simplifica su uso.

En caso de necesitar estructuras de datos complejas así como lógica compleja para generar el resultado se puede optar por sistemas de plantillas más completos como Twig o Smarty.