Cambios Pendientes Spirit
De KumbiaPHP Framework Wiki
Contenido |
Cambios Pendientes KumbiaPHP versión 1.0 Spirit
-
Terminar el scaffold - Crear la web de Kumbiaphp con Kumbiaphp
- Tener siempre en cuenta:
- KISS
- Convención sobre configuración
- Velocidad
Beta 2
-
Terminar el scaffold (90% listo) - Consola que ayude a crear los scaffols estaticos
- Consola añadir para crear los ficheros de gettext
- Crear una nueva lib Report
- Dejar el Auth libre, para poder añadir más tipos de auth
- Repasar y/o actualizar todas las libs
-
Cambio de autocarga usando POST, (que pasa?) -
Cambiar los 2 eregi del active record antiguo - Convención de model.field
-
Revisar js-calendar -
Separar Db y ActiveRecord en 2 libs -
Cambiar Load en métodos models y model -
Cambiar mode_base.php => active_record.php
Views
-
templates, partials y errors por _shared y ponerlos dentro o no se pueden usar esos nombres para controllers -
en View para usar el set_response tambien usar _xxx. ejemplo: views/controller/_rss/action - Proposicion crear tambien un dir default(u otro nombre) dentro del _shared, para tener views por defecto si no existe para esa accion en su dir views/controller/action.(debe tener un atributo el controller para habilitarlo por seguridad)
Por ejemplo si no tiene index.php cargar el shared/default/index.phmtl si existe. Otro, un xml.phtml que podria usar cualquier accion de cualquier controller.
ActiveRecord
-
Eliminar ereg, eregi, ereg_xxx del codigo -
El paginate debe enviar exception si se le pasa valor negativo y evitar la llamada a bd -
Tambien el paginate debe enviar exception si despues de la consulta no existe esa pag -
Ahora los modelos llevaran el include_once arriba para la clase que necesiten - Las validaciones no deben usar el Flash al no validar
- Añadir método estático al AR para llamar a stored procedures
- Mirar si podemos pasarle algo del nuevo ActiveRecord
- Intentar añadir with:
- (Behaviors)
- Si lo podemos aligerar un poco, mejor
- Intentar añadir metodos estaticos, por si usan php 5.3 que lo aprovechen. (internamente ese metodo comprobara la version de PHP)
-
Eliminar exception de la clase -
Cambiado models_autoload a Off en el config.ini. Ademas era una mala practica -
Posibilidad de quitar el models_autoload del config.ini. Eso lo puede hacer el usuario en el initialize añadir Load::models() - (Los callabacks deben ser protected)
- (Crear convencion _up en activeRecord para upload de archivos.)
Helpers
-
(Crear alias e para el echo, igual como ahora el h para htmlspecialchars) -
Este es mejor:
crear alias eh para que haga las 2 cosas de un golpe, el echo y el htmlspecialchars. Podemos escoger otro nombre para este alias. ejemplo:
<h1><?php eh($model->campo) ?></h1>
- Ya que los nuevos hepers son clases, poder cambiar los dirs de js, img, css,.... Via atributos. Más que nada para poder tenerlos en subdominio, si uno quiere.
-
Partials paginators si van al page 1 no deben enviar el 1, solo el path
Router
-
Quitar el redirect del controller y pasarlo al router,tambien que pueda pasar el 301, 302,... si no usa tiempo. -
Quitar de atributos el all_parameters y el id (id no es necesario y si alguien lo quiere $parameters[0]) - (Optimizarlo)
-
Cambiar routes.ini para evitar el bug que tiene php 5.3 - poder pasar parametros usando el routes.ini
-
Poder usar el Flash via session, + cualquier salida (no es del router pero el cambio es debido al enrutar) - Obtener la URL completa incluyendo el dominio.(con esto ademas podriamos usar routes relativas y absolutas)
- Manejo de rutas estáticas para subdominios. (Posiblemente sea mejor usar el .htaccess)
Dispatcher
- Intentar eliminar el get_controller()
Exception
-
Arreglar la exception por si hay espacios en el trace - Cambiar los path separators(win)en el trace
- Poder enviar en el throw el tipo de error (404,500,501,....)
- Añadir boton listar ficheros, debajo de xx files includes. (Posible que salga via jquery). Separados por:
- Includes app
- Includes Core
- Includes Exception
- (Mirar donde podemos usar mas Try y Catch de exceptions, y poder quitar validaciones.)
Recordar
- Intentar standarizar el sistema de drivers o adapters (db adapters, cache drivers, sesion drivers, auth ...)
- Mejorar la cache
- Crear una clase debug o algo parecido
para manejar la salida a html, log, ...
- Crear views para el logger. Asi se puede crear el formato del logger, por ejemplo: apache log, ...
-
Y si quitamos el constructor del controller??? por seguridad y ponemos este y un par mas como private vacios. - Posibilidad de crear un php en el dir de CORE para que devuelva la version y su path.(esto para que se pueda poner en bin, por ejemplo)
- Crear plantilla para partials, helpers, ... (Autor, categoria, descripcion,...)
- Crear boceto para sistema de plugins(mini apps)
-
Considerar HomeController como controller por defecto (mostraria la bienvenida tb) sin usar routes.ini - Considerar admin o backend modulo por defecto con auth
- Intentar poder usar el auth por defecto, si existe la tabla usuarios y usar el http auth.(convencion sobre configuaracion)
- Quitar o cambiar los vendors por nuevos
- Posible cambio en pages, en vez de show usar el index. Asi funcionaria example.com/pages/xxx
- Tambien se puede añadir en pages un metodo secret o secure que miraria primero el auth
- Mejorar el config class
JavaScript
-
Eliminar las caracteristicas obsoletas del código heredado
Antiguo beta1
-
Terminar la nueva bienvenida -
Cuando se lanzan las excepciones en ocasiones no se cargan los estilos -
Terminar que el kumbia exception se encargue de mostrar views para la salida de errores (diferentes en desarrollo y en producción ) -
Crear session en dispatcher solo si el controller es persistente -
Mover la carga del tags.php y use_helper('main') al get_view() -
Si no usa ni template ni view, validarlo antes de llamar al get_view()</s< - Cambiar en los callbacks de ActiveRecord el return 'cancel' por un bool es mejor hacer return false
- <s>Mover el application controller del dir controllers al dir de la app
-
Mover el model base tambien al dir de la app -
El application debe extender del controller base de kumbia libs (ahora esta al reves) -
Cambiar enviroment.ini por databases.ini(lo suyo seria que tuviese el db_date del config.ini y si es posible añadir uno para el charset de la db) - Cambiar los if(file_exists por if(!include $file) { throw new KumbiaException..... (o mejor con un try, si es posible)
-
Crear un dir temp (para poner dentro el de cache y el de logs) -
Cambiar, si es posible el mode de config.ini para que sea production = on | off -
Quitar del config.ini la configuracion de directorios -
Necesitamos un metodo para la carga selectiva de modulos (como la de modelos) -
Quitar el extends object en las clases que no lo necesitan (posiblemente no la necesita ninguna) -
Quitar el join_path y donde se use -
Solucionar el problema de los headers -
Integrar la nueva cache -
Eliminar toda la vieja cache en la clase kumbia y controller -
Añadir cache a los partials -
Hacer la clase logger estática - Añadir mas información a los log (estilo apache)
- Habilitar archivos log vía rss
- Habilitar una opción vía config.ini para enviar un mail con los log, contendría el mail del admin.
- Cuando la APP este en producción las excepciones deben ir a un log o rss(si esta habilitado). Y enviar un error 500
-
Añadir locale al config.ini -
Mejorar la carga de clases del boot.ini -
Mover la carga del standard form al boot.ini - Utilizar el filter_var de PHP en la clase filter. Y en el sanitize y validate de models
-
Terminar y limpiar el pages controller -
Usar el pages controller para visualizar la bienvenida y ponerlo en el routes.ini - La clase xml debe cargarse cuando se necesita y después hacer un exit()
-
Añadir variable $view al controller para evitar bug y limpiar codigo del render del controller - Rehacer el Router::route_to
-
Arreglo de los validadores de ActiveRecord. -
Quitar de los validadores de ActiveRecord el llamado a $this->_connet() eso se ha de pasar al save() tomar como referencia al método validates_presence_of -
Habilitar en el config.ini la carga de modelos (databases), esto para cuando se desee trabajar con o sin modelos -
Agregar al paginate de ActiveRecord el atributo count - El objeto devuelto por Active Record debe ser:
- Objeto ActiveRecord {
- array Metadata (con la metadata)
- array Items (con objetos stdObject)
- }
- Y si es posible, mejor sólo un array sin nombre con los items.
- El active record debe crear el objecto de un golpe ( $items[] = (obj) $array_row )
-
El controller debe hacer el sanitize del get, post y request y no el active record -
Las variables que inicializa al principio Kumbia::main() deberia crear constantes
Sera más fácil de leer el código y podremos quitar código que sólo pasa esas variables, asi como las variables de objeto, usando menos memoria. Serian para los directorios: MODELS, CONTROLLERS, LIBS, VIEWS, HELPERS Y si es un módulo, ya se creara aqui el directorio correctamente (posible problema con el
route_to, hay que mirarlo)