Lamentablement no he tardat mig any en publicar aquest post, com vaig pronosticar a l'anterior, sinó més temps... anem allà...
A l'anterior post vaig fer una llista d'aquelles característiques dels frameworks que es podrien observar des de fora, és a dir, les que aprofitarien per vendre el producte a un usuari que, com jo, s'ha adonat de que realment necessita d'alguna estructura complementària per construir aplicacions web. En aquesta ocasió tractaré d'enumerar aquelles que no són visibles des de l'exterior, en altres paraules, que fa el codi del framework, com està construit per dins, com són les diferents peces que formen part de la maquinària, com és allò que passa desapercebut per a qui veu l'aplicació web al navegador però que fa que tot funcione de manera eficient.
Les característiques de les què parle són aquestes:
- Estructura de directoris ben definida: tots els fitxers de codi font del framework estaran organitzats en directoris, com sembla evident en qualsevol aplicació amb un mínim de complexitat. També sembla evident que els fitxers de qualsevol aplicació web que es construisca amb o sense framework també ho estaran. El que resulta més interessant d'aquest punt és que aquestos fitxers estaran organitzats conforme a una estructura impossada pel propi framework. Així a aquest li resultarà senzill trobar cada cosa al seu lloc sense que el programador haja de preocupar-se de definir els directoris manualment.
- MVC: com ja vaig comentar a un post anterior, el paradigma Model-Vista-Controlador és un patró de disseny que separa les dades d'una aplicació, la interfície d'usuari i la lògica de control en tres components distints. A una aplicació web els models els tenim al sistema gestor de bases de dades; les vistes es corresponen amb els fitxers HTML, on es descriuen els documents que han de mostrar-se al navegador, i el fitxers CSS, usats per donar format als documents HTML; i el controlador seria el codi responsable d'acceptar les ordres de l'usuari, obtindre les dades del model, processar-les i tornar l'eixida corresponent a la vista per mostrar-la al navegador.
- URLs amigables o semàntiques front a URLs extenses o tradicionals. Consisteix en que les URLs del lloc web estan formades d'una manera que permeta als buscadors indexar-les correctament i als usuaris recordar fàcilment el seu contingut.
- Router: de la mateixa manera que el router amb què podem tindre connectat(s) el(s) ordinador(s) de casa o la oficina a Internet tradueix els noms de les webs a les què volem navegar en les corresponents adreces IP per fer la búsqueda, aquest router traduirà les URLs del nostre lloc web en els corresponents noms de model, vista i controlador
- ORM: aquesta característica també la vaig comentar a un post anterior, consisteix en una tècnica de programació per convertir dades entre una base de dades relacional i un llenguatge de programació orientat a objectes.
- Autocàrrega de classes: gràcies a la tècnica de l'ORM tindrem que a cada taula de la base de dades que hajam dissenyat per a la nostra aplicació web li correspondrà una classe en PHP. És fàcil pensar que haurem d'afegir la funció
include()cada vegada que vullgam treballar amb alguna d'aquestes classes però no, un framework d'aquest estil deu permetre al programador oblidar-se per complet d'aquest detall, i per això comptem amb la funció màgica__autoload(). - DAL: una tècnica també comentada al mateix post que l'ORM, consisteix en una interfície que unifica la comunicació entre l'aplicació i la base de dades i permet al(s) desenvolupador(s) oblidar-se de l'SQL.
- i18n (o internacionalització) i L10n (o localització): consisteixen en els mecanismes necessaris per fer que una aplicació software puga adaptar-se a diversos idiomes o regions sense haver de modificar el codi font ni tornar-lo a compilar.
- Validació de dades: també disposarem d'un mecanisme que, quan treballem amb formularis, permetrà verificar les dades que l'usuari introduisca per assegurar que compleixen certs criteris com, per exemple, que la dada siga un número, o que la data final siga superior a la inicial.
- Codi optimitzat: totes aquestes característiques estaran cuidadosament construides amb patrons de disseny adequats i amb un codi el més optimitzat possible.
Doncs aquestes són les característiques principals que ha de tindre un framework senzill per desenvolupar aplicacions web amb PHP. A partir del proper post començaré amb el codi del meu propi i a cada post tractaré cadascuna d'aquestes característiques d'una manera més àmplia.
continuarà...