En esta oportunidad vengo a ustedes, para comentarles que al fin perdí el juicio y estoy tratando de crear un Framework MVC en PHP 5 que emule las ventajas básicas del lenguaje Ruby On Rails o de frameworks en PHP como PHPCake ¿Por qué? Primero porque, como ya comenté, enloquecí. Segundo, porque me gusta PHP y no quiero cambiarme a RoR. Tercero, porque no quiero depender de herramientas de terceros que: 1. por tanta generalización/personalización/configuración/adaptación poseen miles de líneas de código innecesarias para mí, y aunque posean decenas de utilidades, es difícil entrar y reconfigurar el núcleo a gusto propio. 2. Por las restricciones de licencia (si aplica). 3. porque quiero mis tablas en español sin modificar "inflectores" y códigos ajenos (léase punto 1 y 2). 4. porque no quiero ser dependiente de dichos códigos y actualizaciones. 5. porque ya estoy grande y sé programar. 6. porque me gusta. 7. porque no tengo novia...
En fin. el caso es que, me gustaría saber si alguno de ustedes coincide con los puntos arriba mencionados y quiere compartir lo que será este desarrollo que, aun cuando no sé si podré terminarlo, en ese caso lo más probable es que lo libere, para ponerlo al servicio de la comunidad (y hacerme famoso).
Por ahora lo que más tengo son dudas, sobre la mejor práctica de hacer esto o lo otro. Y el acoplamiento de plantillas con sus métodos de caché para mejorar y "descolapsar" las vistas, que en estos frameworks me han parecido casi insoportables por la gran cantidad de código (así sean "html helpers", que considero casi incomprensible para un diseñador normal)
Ya hice (apoyandome en el mod_rewrite de apache) el esqueleto para las llamadas a las clases y metodos, controladores y modelos... y algunas otras cosas, y bueno, creo que va quedando bien porque me considero muy bueno en PHP, lo único que aún no entiendo muy bien es para qué sirve el echo
Por acá les dejo un código sencillito en PHP 5 de los llamados métodos mágicos que hice hace una semana.
Código :
<?php class Modelo { function __call($metodo,$aParam=NULL) { $metodos = array('encuentraPor'); for($i=0;$i<count($metodos);$i++) if( strpos($metodo,$metodos[$i]) === 0 ): $metodo_a_llamar = $metodos[$i]; $parametro = array( str_replace($metodo_a_llamar,'',$metodo) ); count($aParam) ? $aParam = array_merge($parametro,$aParam) : $aParam = $parametro; endif; if ( !isset($parametro) ) die('no encontrado'); call_user_func_array(array(&$this,$metodo_a_llamar),$aParam); } function encuentraPor($campo) { echo "usted desea encontrar un registro por $campo"; } } $mod = new Modelo; $mod->encuentraPorNombre(); //cambiar aca por encuentraPorApellido, etc ?>