Engine · MVC lite en Google Code

Agregar a favoritos

26 Comentarios

Posteado hace 408 días en:

He subido una versión al svn del proyecto para que le echéis un vistazo al código, ya que carece de documentación y así a bote pronto es difícil meterle el diente.

Por ahora trae lo mínimo, falta meterle los helpers y alguna clase para manejar las sesiones y el cacheo.

No seáis crueles con mi código, como dije en el anterior post, busco algo intermedio y sobre todo una base.

La clave del proyecto consiste en personalizarlo y armarle lo que le falta.

Proyecto en Google Code


Engine · MVC lite

Agregar a favoritos

14 Comentarios

Posteado hace 410 días en:

Esto es algo que estoy trabajando en ratitos libres, la criatura se llama Engine y es un patrón MVC escrito en php para personas que buscan algo intermedio, no buscan el potencial de cake o zend sino algo que cumpla la función MVC de una forma básica.

[1]: /images/engine.gif ()

![engine][1]

Muchas veces para montar un miniproyecto no necesitamos algo tan grande sino uno que cubra nuestras necesidades. Soy de esas personas que prefieren usar cosas intermedias porque creo que cumplen mucho mejor y son mas agradables para gente que no son programadores expertos.

Engine es muy sencillo, tan sencillo que asusta, tienes un archivo para configurar la base de datos y no te preocupes sino usas mysql, solo da error si utilizas los modelos.

Los controladores usan un sistema de routing por convención, es decir, dependiendo del nombre del método se usara una ruta u otra.

/controlador/action/id.formato o /controlador/id/action.formato

Varios ejemplos, por defecto el nombre simple se lo traga todo.

    //ruta: /controlador/post/
function post() {}

//ruta: /controlador/10/post
function post_numeric() {}

//ruta: /controlador/post/10..rss
function post_rss() {}

    //ruta: /controlador/10/post.rss
    function post_numeric_rss() {}

El formato por defecto es php, lo suyo es buscar la combinación perfecta.

Los modelos tienen un sistema de cache interno, guarda las consulta en archivos de texto para no tener que hacer peticiones constantemente.

//sin cache
$post = new Post;
$content = $post->find($id);

//con cache, cada 10 minutos
$post = new Post(10);
$content = $post->find($id);

Las vistas son fáciles, tienes que retornar una cadena o un array con las vistas que quieras cargar, el se encarga de buscarlas y de añadirle la extensión. Y si quieres no retornas nada en la función y la vista será la del nombre del método.

class PostController extends APPController {

var $models = array('post');

function edit_html() {
    global $content;
    $id = url(0);
    $post = new Post(10);
    $content = $post->find($id);
    return view('default/header','edit','footer');
}

}

Algunas características están tomadas de otros frameworks, es lógico, son de lo mejor.

Hay mas cosas que puedo contar pero aun las tengo a medias, por supuesto sin documentar :S

Proyecto en Google Code