Engine · MVC lite

Agregar a favoritos

14 Comentarios

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


Cambios en MooTools

Hace poco salió una actualización para mootool, la 1.11. Corrige algunos bugs encontrados y sobre todo problemas de memoria que daban en algunas versiones de navegador.

El problema no es este sino los continuos cambios de nomenclatura en métodos y en clases. Ahora mismo en la versión de desarrollo se esta cociendo una buena, por una parte le están dando caña a los selectores, se puede probar un [test]http://mootools.net/slickspeed/) y mirar los resultados en diferentes librerías. También han movido las variables para detectar el navegador, ahora es un objeto donde conseguimos mucha información.

El problema es que cada versión hacen cambios muy drásticos que te obligan actualizar tus plugins, como no sigas la versión de desarrollo puedes llevarte grandes sorpresas cuando actualices.

El equipo de MooTools se mueve, quiere buscar una librería rápida, muy rápida aunque conlleve cambios drásticos, pero uno que se lee el log del trac ve unas cosas que te quedas a cuadros :S, cosas que vuelven y se van por arte de magia.

Creo que esta es mi primera critica a mootools, pero os aseguro que no tengo mas :).


3 motivos por los que decidirte por Mootools

Mi amigo Andrés me pasa un buen reto y me pide 3 motivos por los cuales decidirte por MooTools.

  1. Extender los elementos

    MooTools esta orientado a extender todo lo que pueda, con la particularidad que no puedes sobreescribir las funciones nativas de cada elemento. Puedes añadir al objeto window, document o los suyos creados para poder encadenar las funciones al estilo jQuery.

  2. Manejo de eventos

    Creo que este es su punto fuerte, da soporte para crear nuevos eventos para la función addEvent, los puedes mapear o cambiar el tipo y así realizar lo que tu quieras, el caso mas común es el del evento domready, pero existen otros que vienen en el core como mouseenter o mouseleave.

  3. Realmente engancha

    MooTools tiene ese "yo que se" que una vez que lo pruebas y creas un script te sientes con el gusanillo de quere jugar mas con ella. Es facil de programar y cubre de una manera ingeniosa todas las limitaciones que puedan surgir a la hora de crear un script. Por no decir que en un plis plas la puedes extender.

Tambien decir que puedes elegir los modulos que vayas a necesitar, soporte para JSON y que su libreria de efectos anda finisima.

¿Porque no usarias MooTools?


Diplomado en Diseño gráfico

Agregar a favoritos

31 Comentarios

Posteado hace 457 días en:

Hace exactamente una hora que me acaban de llamar para darme la buena noticia, despues de un mes por fin puedo decir que "Ya tengo la carrera!".

Han sido unos años magníficos en Alicante, donde he podido madurar como persona y como diseñador. He conocido gente fenomenal y que siempre serán mis amigos, espero no perder el contacto con ellos.

Enhorabuena a mis colegas:

  1. Alfonso Acedo y su exposición de la divina comedia
  2. Emilio Peña y su revista del aniversario de meristation
  3. Kiko Ruiz y su revista digital savia magazine.
  4. Carlos Tallón y su estudio personal.
  5. Mercedes Vidal y sus dibus animados.

Ahora comienza una nueva etapa en mi vida, la cual se me esta haciendo difícil tanto a nivel personal como profesional. ¿Consejos de supervivencia?.


Manejo de Cookies

Agregar a favoritos

3 Comentarios

Posteado hace 459 días en:

El manejo de cookies por medio de JS y PHP a la vez puede dar problemas sino sabemos ciertos detalles, en mi caso, al intentar crear un cesta, doy la posibilidad de ir sumando objetos por medio de js o por php, pero por arte de magia las cookies creadas no podían ser manipuladas por el server, solo lectura.

El quid de la cuestión es que la cookie debe tener los mismos parámetros de configuración tanto en el cliente como en el server, parece una tontería, pero al principio uno no cae en ella.

Para manipularlas el ´path´y el ´dominio´ deben ser el mismo en ambos lenguajes.

Sobre todo cuidado con ´path´, es el que se encarga de que la cookie se encuentre en todos los directorios o solo en uno, si utilizas htaccess es casi seguro que alguna vez la cookie haya desaparecido.

Os pongo una mini clase para la manipulación de Cookies por PHP, es casi un port de Mootools.

//Modo de uso
//Cookie::set('nombre','valor');

class Cookie {

function set($cookie= '', $value= '', $duration= 31000000, $path= null, $domain= null) {
    setcookie($cookie,$value, time() + $duration, $path, $domain);
    $_COOKIE[$cookie] = $value;
}

function get($cookie= '', $default= '') {
    if (isset($_COOKIE[$cookie])) return $_COOKIE[$cookie];
    if($default) return $default;
    return false;
}

function remove($cookie= '', $path= null, $domain= null) {
    setcookie($cookie, '', time() - 3600, $path, $domain);
    unset($_COOKIE[$cookie]);
}

}