Cambios Pendientes Spirit

De KumbiaPHP Framework Wiki

Cambios Pendientes KumbiaPHP versión 1.0 Spirit

  • Terminar el scaffold

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.

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
  • Ahora los modelos llevaran el include_once arriba para la clase que necesiten
  • 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)
  • 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>


Router

  • Quitar el redirect del controller y pasarlo al router, tambien que pueda pasar el 301, 302,... si no usa tiempo.
  • 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 (no es del router pero el cambio es debido al enrutar)
  • Obtener la URL completa incluyendo el dominio.
  • Manejo de rutas estáticas para subdominios.

Recordar

  • 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)
  • Mirar donde podemos usar mas Try y Catch de exceptions, y poder quitar validaciones.
  • 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
  • Arreglar la exception por si hay espacios en el trace y cambiar los path separators(win)

Antiguo

  • 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
  • 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)