Engine · MVC lite

Agregar a favoritos

14 Comentarios

Posteado hace 335 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


  • avatar

    Hermann#1 hace 335 días

    Tiene buena pinta, código? :-P


  • avatar

    Hanok#2 hace 335 días

    Tienes razón, CakePHP y similares son frameworks estupendos, pero en aplicaciones pequeñas no merece la pena usarlos. Estabamos esperando algo así!!


  • avatar

    IceBeat#3 hace 335 días

    Pues tengo creado un proyecto en google code, tengo que modificar algunas cosas que las tengo en el aire y lo subo en unos dias.

    Por lo menos lo más basico.


  • avatar

    kus#4 hace 335 días

    is available to download now?

    And what about Code Igniter? ..


  • avatar

    Hector#5 hace 335 días

    Wow, muy bien, ya tengo ganas de ponerle mis pecaminosas manos encima, 4 o 5 ??


  • avatar

    Luis#6 hace 335 días

    En lo personal me encanta encontrar que la gente se esfuerza por crear, nada nos enriquece mas.

    Me parece apropiado tu punto de la sencillez. Nada mas trata, como consejo, en un futuro, si lo sigues, separar por completo el HTML. Puede ser con PatTemplate o algo asi. La mayoria de frameworks de PHP cometen esa falta :S

    Igual, excelente.

    Saludos desde Costa Rica!


  • avatar

    Hector#7 hace 335 días

    lo de 4 o 5, me referia a la versión de PHP ... en que versión estas programando ??


  • avatar

    Diego#8 hace 335 días

    Tiene muy buena pinta! Estas usando Active Record?


  • avatar

    Prashant#9 hace 335 días

    Supongo que esta versión también funcionara con PHP y 5 a la misma vez no? Y la documentación, va ser disponible en español e ingles o solo uno de ellos?

    Algo que deberías incluir es scaffolding, todo el mundo usa esta función cuando están en la fase de desarrollo de una aplicación.

    El proyecto este suena muy interesante!


  • avatar

    IceBeat#10 hace 335 días

    @kus soon :P

    @Hector Pues esta escrito en PHP 4, aun no me defiendo bien con las clases en PHP 5.

    @Luis No lo tenia pensado usar templates, soy de los que piensa que aprenderse cuatro o cinco cosas de PHP es lo mismo que aprenderse tags especificos en templates.

    @Diego Si :), un poco inspirado de cake, que mola un monton.

    @Prashant Es que no tengo nada de documentación jejeje :S, un grave error por mi parte.

    Si le meto scaffolding ya estaria complicando el tema un poco, no quiero que tenga de todo, sino lo necesario.


  • avatar

    Isaac bordons#11 hace 332 días

    Enhorabuena! @Prashant: Yo no estoy de acuerdo con que el scaffolding sea determinante en un framework. Es solo una opinión personal, yo no lo uso nunca. :)

    Estoy con kus, codeigniter para mi es la mejor opción que he podido testear. Y sobretodo la más lógica y simple.

    Recomiendo a todo los PHPeros que le echen un vistazo!

    De todas formas supongo que no hay nada como hacerte tu propio framework para que se adapte totalmente a tu forma de trabajo.

    Salú!


  • avatar

    IceBeat#12 hace 331 días

    @Isaac bordons le echare un vistazo e investigare sus entrañas jeje.

    A mi me viene fenomenal, tengo una base que controlo al 100%.

    Tambien consigo aprender y experimentar, no es reinventar la rueda sino ver como funciona la rueda :).


  • avatar

    Ricieri Garcez Rosa#13 hace 320 días

    Muy bien, es parecido con PICORA (http://livepipe.net/projects/picora/), "Micro Framework".


  • avatar

    IceBeat#14 hace 319 días

    @Ricieri Garcez Rosa vaya que curioso, en un mismo archivos tiene hasta routing y todo.

    Gracias por el enlae Ricieri.