Mostrando entradas con la etiqueta source code. Mostrar todas las entradas
Mostrando entradas con la etiqueta source code. Mostrar todas las entradas

miércoles, 13 de octubre de 2010

Liberamos Yupp Portal v03

Estamos muy contentos de anunciar la nueva liberación de Yupp Portal, la aplicación para gestión de portales de Yupp Framework.

La nueva versión incluye nuevas características y la corrección de varios bugs:

Soporte para comentarios en las páginas: http://code.google.com/p/yupp-portal/issues/detail?id=16
Corrección de inclusión de clase en Bootstrap: http://code.google.com/p/yupp-portal/issues/detail?id=24
Corrección de problema al volver del registro de un nuevo usuario: http://code.google.com/p/yupp-portal/issues/detail?id=27
Corrección del paginador en el listado de usuarios pendientes: http://code.google.com/p/yupp-portal/issues/detail?id=21

Esta versión de Yupp Portal funciona desde Yupp PHP Framework v0.2.2.

Descarga ahora: http://code.google.com/p/yupp-portal/downloads/list

También puedes descargar desde el sitio de Yupp Apps: http://code.google.com/p/yupp-apps/downloads/list

martes, 12 de octubre de 2010

Nuevo Yupp PHP Framework 022

Estamos muy contentos de anunciar la liberación de una nueva versión de Yupp PHP Framework.

Esta versión 0.2.2 marca un antes y un después en el desarrollo de aplicaciones con Yupp.

La principal mejora es la del fortalecimiento del concepto de "aplicación web", frente al concepto previo de "componente", en donde las aplicaciones eran desarrolladas como plugins al framework. Ahora lo importante son las aplicaciones web, donde:
  • Cada aplicación web tiene una estructura definida pero flexible.
  • Cada aplicación web puede tener sus propios iconos.
  • Cada aplicación web puede usar sus propias librerías Javascript o usar las del framework.
  • Cada aplicación web puede usar su propia configuración de base de datos o usar la del framework (si, cada aplicación puede tener su propio servidor de bases de datos, separado del resto de las aplicaciones)
  • Cada aplicación web tiene su propio descriptor, que contiene información útil para integrar las aplicaciones al framework y para actualizar automáticamente las versiones de las aplicaciones que se tengan instaladas.
  • Cada aplicación web puede tener su propio conjunto de tests, para facilitar su testeo automático.
  • Una sola instancia del framework puede alojar un número ilimitado de aplicaciones web.

Descarga el framework ahora: http://code.google.com/p/yupp/downloads/list


En breve crearemos un conjunto de videos para explicar mejor los temas relacionados con la instalación y configuración del framework, y también el desarrollo de distintas aplicaciones web y cómo obtener mejores resultados utilizando Yupp PHP Framework.

También estaremos actualizando la documentación: http://www.simplewebportal.net/yupp_framework_php_doc/

viernes, 18 de junio de 2010

Liberamos Yupp PHP Framework v0.2.0

Ha pasado algún tiempo desde la última liberación, por eso estamos muy contentos de anunciar la nueva versión de Yupp PHP Framework v0.2.0.


Esta nueva versión es más estable ya que se corrigieron varios problemas encontrados en la versión anterior, y cuenta con varios ejemplos de componentes y uso de helpers para hacer más fácil el aprendizaje.

Las notas de la versión con descripción de la instalación del framework:
    Descargas:
    Documentación:
    La lista detallada de los cambios y las correcciones se encuentra aquí:
    Colabora con el desarrollo del framework:

    En breve haremos algunos videos para explicar el funcionamiento del framework y mostrar cómo crea aplicaciones web desde cero. También mejoraremos la documentación, agregando más ejemplos.

    domingo, 11 de abril de 2010

    Liberamos nueva version de Yupp PHP Framework

    Estamos muy contentos de anunciar la nueva liberación del Yupp PHP Framework v0.1.9.

    Para esta nueva versión se incorporación correcciones a varios bugs encontrados desde la versión anterior,  además tendrá un nuevo paquete HTTP que servirá para enviar pedidos HTTP a otros sistemas y procesar su respuesta (gracias a Magdalena que implementó este paquete). También incluirá un mecanismo de conversión
    automática de instancias del modelo a XML, incluso de estructuras de datos complejas.

    Esta nueva versión es muy estable y tiene muchas funcionalidades y cuenta con nuevos ejemplos de uso para hacer más fácil la adopción por parte de los programadores, mejorando su curva de aprendizaje.

    Las notas de la versión con descripción de la instalación del framework:
      Descargas:
      Documentación:
      La lista detallada de los cambios y las correcciones se encuentra aquí:
      Colabora con el desarrollo del framework:

      martes, 9 de febrero de 2010

      Nueva liberación de Yupp PHP Framework

      Estamos muy contentos de anunciar la nueva liberación del framework, Yupp PHP Frameowrk v0.1.8.

      Esta liberación es la primera que incluye un juego de tests para detectar problemas en el YORM, el modulo de ORM de Yupp Framework.

      Para esta liberación hemos corregido los siguientes tickets:
      También hemos corregido y mejorado la documentación de referencia:
       Para descargar la nueva versión, accede a nuestro sitio en google code:
      Nos interesa que nos cuentes si has probado el framework, qué cosas buenas le encontraste y qué cosas le mejorarías, tu opinión cuenta!

      Si quieres colaborar con el framework y no sabes como, accede a la guía de colaboración:
      Las notas de la versión están en nuestra wiki:

      ¡Esperamos tus comentarios!
      -
      -

      martes, 1 de diciembre de 2009

      Liberamos Yupp PHP Framework v0.1.7

      -
      Luego de largas horas de trabajo estamos muy contentos de liberar la nueva versión de Yupp PHP Framework.


      Las diferencias con la versión 0.1.6.7 son:
      1. Se corrije un bug que se liberó con Yupp 0.1.6.7 en la clase routing.Executer, pasaba cuando se retornaba null de una accion de un controller.

      2. Corrección de DatabaseMySQL en consultas que buscan por strings numéricos.

      3. Se eliminaron las clases Filter y Mapping, y se creó una clase Router que cumple las tareas de las elminadas y es mucho mas simple de usar. (http://code.google.com/p/yupp/issues/detail?id=10)

      4. YuppContext se quitan pasajes por referencia.

      5. Se agregan pruebas de generacion de controles complejos en formularios: html y calendar. html usa TinyMCE y calendar usa YUI Calendar. Se agregan ambas librerias al framework.

      6. Primer integración de PostgreSQL a Yupp. Nueva clase DatabasePosgreSQL.

      7. Correcciones a DAL, PersistentObject y PersistentManager.


      Descargas:
      http://code.google.com/p/yupp/downloads/list
      http://www.simplewebportal.net/host/1022.htm

      TAG SVN:
      http://code.google.com/p/yupp/source/browse/#svn/tags/v017

      Cualquier duda, consulta o reporte de error pueden hacerla en el grupo google (opción "debates > nueva entrada"):
      http://groups.google.com/group/yuppframeworkphp


      Hasta pronto!

      Pablo Pazos Gutiérrez
      Líder de proyecto
      Yupp PHP Framework

      -
      -

      domingo, 25 de octubre de 2009

      Liberamos Yupp PHP Framework v0.1.6.7

      Amigos, estamos muy contentos de anunciar la liberación de la nueva versión de Yupp PHP Framework.


      Las diferencias con respecto a la versión 0.1.6.4 son:

      1. Correccion a YuppForm en el campo date.

      2. Se agrega el método YuppController.componentControllersAction() que sirve para mostrar los controladores de un componente dado.

      3. Se agrega la restricción "inList" que permite verificar si un valor está en una lista de valores dados.

      4. Se agrega el metodo PersistentObject.hasFieldErrors( $attr ) para preguntar si existen errores en el valor de un atributo particular.

      5. Se agrega el metodo PersistentObject.attributeDeclaredOnThisClass() para saber si un determinado atributo fue declarado en una clase. Sirve para derivar los nombres de las tablas intermedias en relaciones multiples.

      6. Se agrega el helper DisplayHelper.yupp_select para crear selects html de forma sencilla.

      7. Se corrije el metodo PersistentObject.validate() para que priorice la validacion de nulos y vacios sobre el resto de las validaciones. Ahora si un valor es nullable(true) y tambien debe ser email(), la validacion de un valor vacío devuelve true, antes fallaba en la validacion de email.

      8. Correcciones menores en la clase Contraints.

      9. El método PersistentObject.setProperties() ahora hace trim de los valores antes de asginarlos a los campos, esto es para evitar el llenado accidental de datos con espacios en blanco delante o detrás del valor ingresado.

      10. Agregamos soporte para varios subdirectorios dentro del directorio de clases de modelo, para ordenar las clases cuando son muchas.
      - Se corrige el metodo ModelUtils.getModelClasses() para poder crear subdirectorios en el directorio del modelo de un componente.
      - Correccion al metodo YuppConventions::getModelPath().
      - Correccion en PackageNames a una expresion regular para poder poner subdirectorios en el modelo.
      - Correcciones en YuppLoader, en el cargado del modelo para permitir definir clases en subdirectorios.

      11. Corrección en el método YuppConventions::relTableName(..) donde se creaba mal el nombre de la tabla intermedia para relaciones hasMany si se trataba de salvar una subclase y el atributo estaba declarado en su superclase.

      12. Se corrige el helper Helpers.template() para mejorar el pasaje de parametros.

      13. Correccion en el mapeo de herencia de tabla multiple para soportar modelos de relaciones y herencia complejos (PersistentManager, PersistentObject, MultipleTableInheritanceSupport).

      14. Se corrije el metodo YuppController::getFlash() y se hace limpieza.

      15. Corrección de la comparación de strings para generar consultas MySQL (donde el "=" no considera mayúsculas y minúsculas)
      - Se reescribió completamente la evaluación de QUery que genera las consultas SQL, para que considera las particularidades de cada DBMS (MySQL, SQLite, PostgreSQL, etc)


      Descargas:
      http://code.google.com/p/yupp/downloads/list
      http://www.simplewebportal.net/host/1022.htm

      TAG SVN:
      http://code.google.com/p/yupp/source/browse/#svn/tags/v0167

      Cualquier duda, consulta o reporte de error pueden hacerla en el grupo google (opción "debates > nueva entrada"):
      http://groups.google.com/group/yuppframeworkphp


      Hasta pronto!

      Pablo Pazos Gutiérrez
      Líder de proyecto
      Yupp PHP Framework

      jueves, 17 de septiembre de 2009

      Herramientas para comprimir codigo javascript

      Para crear sistemas web muchas veces me veo utilizando librerías y scripts javscript que encuentro en internet. Muchos de estos pesan entre 150 y 300 Kb, haciendo que el tiempo de carga de las páginas web sea muy lento. Por suerte existen herramientas que nos permiten comprimir esas librerías y dejarlas de un tamaño aproximadamente de un 30% del tamaño original.

      En general estas herramientas tienen un cuadro de texto donde se debe pegar el código javascript a comprimir, elegir algunas opciones de compresión, luego vemos el código comprimido y la razón de compresión (tamaño original / comprimido). Distintas opciones de compresión harán que tu código quede más reducido aún.

      Aquí dejo algunos links a estas herramientas:
      Feliz compresión!

      martes, 2 de junio de 2009

      Liberamos la nueva versión de Yupp! v0.1.6.4

      Estamos muy contentos de anunciar la liberación de la nueva versión de Yupp PHP Framework.

      Estaos agradecidos con los usuarios que últimamente se han interesado en el proyecto, enviándonos sus comentarios, dudas y reportando errores, y es gracias a ellos que podemos seguir mejorando.

      Hemos corregido y mejorado muchas cosas desde la versión anterior, entre ellas:

      1. Se corrigió y mejoró el web flow.
      2. Se agrego el metodo 'validateOnly' a la clase PersistentObject.
      3. Correcciones para CRUD y vistas dinamicas.
      4. Cambia el nombre de la clase ControllerFilter2 por YuppControllerFilter.
      5. Se agregó addslashes en los métodos insert_query y update_query de DAL y stripslashes en PersistentManager, para resolver problemas con caracteres de control de MySQL.
      6. Se agregó el helper "pager" para crear links de paginación de registros para los listados.
      7. Se agrego el helper orderBy para crear columnas ordenables en los listados.
      8. Corrección de restricción de email.
      9. Ya no es necesario pasarle $this->params al método "render" de YuppController:
      - Antes: return $this->render("show", &$this->params);
      - Ahora: return $this->render("show");
      10. Corrección del helper "locale_chooser" que generaba XHTML inválido.
      11. Se agrega al paginador los params de ordenamiento por columnas en los listados (helper "orderBy") si los hay.


      Descargas:

      http://code.google.com/p/yupp/downloads/list
      http://www.simplewebportal.net/host/1022.htm

      TAG SVN:
      http://code.google.com/p/yupp/source/browse/#svn/tags/v0164

      Cualquier duda, consulta, crítica o reporte de error pueden hacerla en el grupo google (opción "debates > nueva entrada"):
      http://groups.google.com/group/yuppframeworkphp


      Hasta pronto!

      Pablo Pazos Gutiérrez
      Líder de proyecto
      Yupp PHP Framework

      jueves, 2 de abril de 2009

      Nueva versión de Yupp PHP Framework v0.1.6.3

      En esta nueva versión estabilizamos aún más el framework, probándolo con distintas versiones de PHP. Además se corrigieron bugs y se mejoraron algunas características.

      Este es el detalle del trabajo realizado:
      1. Corregido que si se crean urls con parametros llamados param_1, param_2, etc, esos se pongan en la propia url sin ?param_1&...

      2. Correccion de clase Filter, el metodo que procesa los params dependía de la cantidad de directorios en la ruta a donde está instalado Yupp Framework, ahora es independiente de donde se instale el framework.

      3. Se quitó devolver la referencia (&) en YuppSession::get porque da error cuando se devuelve NULL.

      4. Correción en clase Helpers: correccion de compatibilidad con PHP 5.2.8.

      5. Corregido el flash que se perdía cuando se hace redirect, los valores se mandan en la url.

      6. Resuelto un pequeño bug en la clase Logger.

      7. Se integró la funcionalidad de submit de forms via ajax, utiliza el plugin forms de jQuery.

      8. YuppDateTime: Se agrega operacion para manipular fechas.

      9. Nueva clase YuppForm2 que suplanta a YuppForm y acepta submit por ajax. Se deja YuppForm hasta la próxima liberación. Se agregó el campo "select" y la forma de pasarle los parámetros a los campos ahora es mediante un array asociativo, y los parámetros desconocidos son ingresados en la tag HTML generada como atributo de la misma.

      10. Se hicieron grandes modificaciones en cómo se definen y ejecutan los filtros de controladores, estos filtros sirven para definir acciones que se ejecutan antes o después de las acciones de los controladores según ciertas reglas (se pueden definir filtros por componente, por controlador, por accion, todas las acciones menos una, etc).

      11. Correccion de metodo PersistentObject.hasErrors, tenia un error en la condicion.

      12. Renombrado de archivo de arranque a components.{componente}.Bootstrap.script.php

      13. Correccion de bug en PersistentManager::generateAll(), se agregaban las restricciones para atributos que todavía no se habían agregado.


      Notas de versión completas: http://code.google.com/p/yupp/wiki/YuppPHPFrameworkv0163

      Para descargar esta versión se puede hacer directamente desde el sitio de google code o mediante el SVN:

      Cualquier duda o sugerencia será bienvenida en nuestro grupo:

      Para acceder a la última documentación:


      A/C Pablo Pazos Gutierrez
      Líder de Proyecto
      Yupp PHP Framework

      martes, 10 de marzo de 2009

      Transformar errores y warnings de PHP en excepciones

      Hoy estuve probando la funcionalidad de envío de email de PHP y como tenía el servidor de mail mal configurado en el PHP.INI, mi aplicación me mostraba un WARNING. El problema es que el WARNING no se tira como una excepción, o sea que no se le puede hacer TRY/CATCH, por lo tanto tuve que buscar como hacer para que estas WARNINGS se pudieran atrapar como cualquier excepción, el resultado es el siguiente:

      En PHP existe una función llamada set_error_handler, la cual me permite establecer una función mía para manejar los errores de PHP (PHP tiene distintos tipos de errores y puedo definir distintos manejadores para cada tipo de error).

      Entonces, para que todos los errores de PHP (incluyendo WARNINGS) sean enviados a mi manejador (para arrojar una excepción en su lugar) es implementado con el siguiente código:

      set_error_handler("my_warning_handler", E_ALL);

      function my_warning_handler($errno, $errstr, $errfile, $errline, $errcontext) {
      throw new Exception( $errstr );
      }

      Seleccionando E_ALL, cualquier tipo de error es enviado a mi función para arrojar una excepción.

      Los distintos tipos de errores que tiene PHP son:
      • E_ALL
      • E_WARNING
      • E_ERROR
      • E_PARSE
      • E_CORE_ERROR
      • E_CORE_WARNING
      • E_COMPILE_ERROR
      • E_COMPILE_WARNING
      • E_STRICT
      Por más información sobre set_error_handler y manejo de errores en PHP:

      Espero que les sirva.

      sábado, 28 de febrero de 2009

      Nueva versión de Yupp PHP Framework v0.1.6.2

      Como anunciábamos ayer, hoy liberamos la versión 0.1.6.2 de Yupp PHP Framework.

      Esta es una versión de estabilización, donde se corrigieron muchos bugs y se mejoraron algunas características. Este es el detalle del trabajo realizado:
      • Correccion en PersistentManager.generate() para que genere todas las tablas intermedias con la columna "ord" que se utiliza cuando el atributo hasMany es de tipo LIST, cuando es de tipo SET o COLLECTION, no se toma en cuenta.
      • Se agregó soporte para incluir CSS o imagenes desde un componente. Para esto se modificó el helper "css" y se agregó el helper "img".
      • Corrección al helper "errors", lanzaba un error si el elemento no tenía errores.
      • Correcciön al método "hasErrors" de PersistentObject, que no verificaba que el campo errors fuera NULL.
      • Se agrega el constructor para la condicion Not Equal a la clase Condition.
      • Correccion del metodo addOrder de la clase Criteria2.
      • Hay un problema con la extraccion de los parametro de la url: http://localhost:8081/YuppPHPFramework/portal/page/display/mi_pagina_bbb/sdfda/asdf?as=sdfg
        • El tema fue que al intriducir el tema del ruteo, UlrProcessing, quien antes hacia el trabajo de crear los params de la url, no se llama mas, y ahora el ruteo solo toma params de POST y GET y no considera la url.
      • Varias correcciones para compatibilizar Yupp con versiones anteriores de PHP (PHP 5.2.0 y 5.2.1).
      • Se agregó el método firstToUpper a core.basic.String.
      • Se agregaron los siguientes campos a la configuración de Yupp (clase YuppConfig):
        • currentMode: indica el modo de ejecucion de la aplicacion (development, production o testing).
        • modeDefaultMapping: indica que accion debe ejecutarse por defecto, dependiendo del modo actual, al acceder a la aplicación.
      • Se agregó el método addCustomParams en la clase routing.Filter

      Notas de versión completas: http://code.google.com/p/yupp/wiki/YuppLiberacionV0162

      Para descargar esta versión se puede hacer directamente desde el sitio de google code o mediante el SVN:

      Cualquier duda o sugerencia será bienvenida en nuestro grupo:

      Para acceder a la última documentación:


      A/C Pablo Pazos Gutierrez
      Líder de Proyecto
      Yupp PHP Framework

      Modificada la hoja de ruta hacia Yupp PHP Framework v0.2.0

      Modificamos la hoja de ruta por la gran cantidad de problemas que detectamos, corregimos y otras cosas que agregamos. Mañana (sábado 28 de febrero) estaremos liberando la versión 0.1.6.2 del framework. Los últimos cambios ya están en el SVN del grupo de google: http://code.google.com/p/yupp/source/checkout.

      La modificación fue correr todas las liberaciones 0.1.6.x y liberar como 0.1.6.2 el framework con las últimas correcciones, lo que consideramos un paso gigante en cuanto a estabilización del framework se trata.

      Si bien esperamos que Yupp v 0.2.0 sea la primer liberación estable para producción, en este momento estamos utilizando Yupp en producción para un sistema de CMS muy simple, este sistema será liberado una vez completado con el nombre de Yupp Portal y apuntará a la generación de portales de forma rápida y 100% actualizable via web (cero código HTML/PHP para el usuario).

      Pablo Pazos Gutierrez
      Líder de proyecto
      Yupp PHP Framework

      ------

      Haz clic en http://groups.google.com/group/yuppframeworkphp/web/hoja-de-ruta-hacia-v0-2-0
      Si haciendo clic no se activa, copia el enlace y pégalo en la barra de
      direcciones de tu navegador.

      viernes, 30 de enero de 2009

      Liberación de estabilización Yupp Framework PHP v0.1.6.1

      Esta es una versión de estabilización de la versión 0.1.6 de Yupp PHP Framework, la cual contiene pequeños cambios y correcciones con respecto a v0.1.6.
      1. Agregado de la verificación de existencia de una vista y de un layout, que en caso de no existir, se lanza una excepción que es mostrada de forma amigable al usuario.

      2. Correcciones y ampliacion de funcionalidades de la clase YuppForm para generar formularios en las vistas.

      3. Se modifico el helper JS para que pueda tomar javascripts de componentes particulares, ahora acepta un nuevo parámetro "component" que es el nombre del componente dentro del cual está alojado el archivo javascript a incluir en la vista.
      Descargas: http://code.google.com/p/yupp/downloads/list

      Por consultas o sugerencias: http://groups.google.com/group/yuppframeworkphp
      Documentación: http://www.simplewebportal.net/host/1021.htm

      jueves, 8 de enero de 2009

      Nueva versión de Yupp PHP Framework

      Tengo el agrado de anunciar la liberación de la nueva versión de Yupp PHP Framework.

      En su versión 0.1.6, Yupp Framework presenta los siguientes agregados:
      1. Se agregaron tipos para los atributos hasMany, ahora se pueden generar con tipos LIST, COLECTION o SET. Con LIST, los elementos en la colección se mantienen ordenados, esto se logra almacenando un nuevo atributo "ORD" que guarda el lugar del elemento en la lista. COLECTION es el comportamiento por defecto, no concerva orden y se permiten repetidos. SET es una colección donde no se permiten elementos repetidos. Estamos pensando en agregar el tipo ORDERED_SET donde no se permitan repetidos y se concerve el orden (se comporta como SET y como LIST).
      2. Se agregó una pantalla de administración en donde:

        • Permite generar las tablas para el modelo de datos existente (de todos los componentes).

        • Permite ejecutar el script de bootstrap de cada componente (este script es donde se inicializan los datos que el componente necesita en la base de datos).

        • Permite ingresar a los controladores existentes (igual que en v0.1.5)

        • Permite ver estadísticas de líneas de código del framework, totales y por clase.


      3. Se realizaron pruebas con "custom validators" que son validadores de datos o restricciones que se pueden poner sobre los atributos de las clases del modelo de datos, y que pueden ser creadas por el usuario y no están ya implementadas en Yupp. En el archivo "blog.model.Usuario.class.php" se agregó la declaración de una clase "EmailsStartsWithName", la cual es una restricción agregada por el usuario para validar que el atributo"email" empiece con el nombre del usuario, que está en el atributo "nombre". De la misma forma se puede crear cualquier otro "custom validator". Agregaremos una guía de esto a la documentación: http://www.simplewebportal.net/yupp_framework_php_doc/


      Página de descargas: http://code.google.com/p/yupp/downloads/list
      Documentación: http://www.simplewebportal.net/yupp_framework_php_doc/
      Grupo Google: http://groups.google.com/group/yuppframeworkphp/

      sábado, 25 de octubre de 2008

      Nueva liberación de Yupp PHP Framework

      Notas de la versión:
      • Versión 0.1.5 del Yupp Framework PHP

      Incluye los siguientes componentes:
      • versión 0.5 del YORM (Yupp Object Relational Mapping)
      • versión 0.1.4 del YMVC (Yupp Model View Controller)

      Requisitos:
      • Version de PHP: 5.2.x (nosotros utilizamos 5.2.3)
      • Motor de bases de datos: MySQL 5.x o superior (nosotros utilizamos 5.0.41)
      • Tener el modulo de Apache MOD_REWRITE instalado y activado.

      Cambios con respecto a la versión anterior:
      1. El mayor cambio de esta versión es el soporte de MTI, que es la posibilidad de mapear un modelo de clases con herencia entre ellas, en distintas tablas. Previamente Yupp solo soportaba mapeo de herencia de una tabla, con esta nueva opción tenemos un componente ORM de gran funcionalidad y flexibilidad a la hora de diseñar los modelos de datos de nuestros sistemas.

      2. Se corrigieron problemas en DAL y PersistentManager.

      3. Se agregó la generación de Foreign Keys para evitar errores de consistencia de datos al eliminar, esto sirve para avisarle al usuario cuando se olvida de actualizar asociaciones antes de eliminar algún objeto.

      Que contiene esta liberacion?

      Contiene los componentes mencionados antes, el YORM y el YMVC.

      Esta liberación contiene un ejemplo de un sistema de Blog sencillo donde
      se pueden crear entradas y comentarios, mostrando el funcionamiento básico
      del framework, con funcionalidades como:

      - Definicion de modelo persistente
      - Crear modelo
      - Modificar modelo
      - Obtener modelo
      - Definicion de controladores
      - Definicion de vistas
      - Uso de helpers basicos
      - Validacion automatica de informacion


      Para correr el ejemplo

      Debes tener un servidor Apache con soporte para PHP corriendo.
      Debes tener PHP 5.2.x o superior.
      Debes tener MySQL 5.x o superior instalado y corriendo.

      Descomprime el contenido de la liberacion que descargaste desde www.SimpleWebPortal.net
      en un directorio de tu servidor Apache, accesible desde un browser,
      por ejemplo /www o /public_html.


      Configuracion de la base de datos y creacion de la base:

      Para configurar los datos de conexion a la base de datos MySQL se debe
      editar la informacion presente en el archivo:
      "/core/config/core.config.YuppConfig.class.php",
      modificando el campo $dev_datasource, estableciendo los valores correctos
      para cada clave de dicho array: url, user, pass y database.

      Y se debe crear la base de datos con el nombre que hayas configurado en
      "/core/config/core.config.YuppConfig.class.php" en el campo "database".


      Generacion de las tablas:

      Debes editar el archivo "/index.php" descomentando la siguiente linea:

      PersistentManager::getInstance()->generateAll();

      Esto generara las tablas automaticamente a partir de las clases de modelo
      en "/model", al acceder al sistema.

      Debajo se explica como acceder al sistema, luego de haber accedido por
      primera vez vuelve a comentar esa linea ya que si no la comentas
      generara un error porque las tablas ya existen. En las próximas versiones
      intentaremos crear un mecanismo más amigable para generar las tablas
      en la base.


      Acceder al ejemplo:

      Accede al directorio donde se descomprimió Yupp Framework PHP desde un
      browser, aparecerá una página con links, esos links ejecutan las acciones
      por defecto de los controladores existentes, el único controlador que
      tiene utilidad por el momento es "EntradaBlog" que es de donde se permite
      crear entradas para el blog.


      Cualquier duda o sugerencia, envianos un mail desde http://www.SimpleWebPortal.net > contacto.
      Tambien puedes contactarnos a por nuestro blog: http://YuppFramework.blogspot.com.


      Descargas:


      Pablo Pazos Gutierrez
      Project Leader
      www.SimpleWebPortal.net

      lunes, 4 de agosto de 2008

      Nueva versión 0.1.3!!!

      Hemos hecho la nueva liberación y alcanzado el hito de la v0.1.3 marcado en la hoja de ruta.

      Los cambios en esta versión son:

      1. Soporte para layouts. Como demo, hay un layout definido para el componente blog y la vista list de entradaBlog incluye ese layout. El layout muestra una barra con selección de idioma del blog.

      2. Moficación a la forma en que se verifican los mappings de ruteo en routing.Mapping.

      3. Se agregó una operación toJSON para las clases del modelo, no está completa.

      4. Se agregó soporte para SQLite, para configurar que dbms se usa hay que modificar la información en YuppConfig.

      En cuanto a JSON, todavía falta un poco para generar un JSON completo de todo el modelo.

      Por mas info:

      Descargas: http://www.simplewebportal.net/host/1022.htm

      martes, 15 de julio de 2008

      Soporte para layouts

      El soporte para layouts es una característica bien importante para cualquier framework MVC y Yupp Framework no se podría quedar atrás, así que empecé a buscar información sobre implementación de layouts, patrones de diseño, y frameworks especializados en layouts y templates.

      Un sistema de layout ayuda a ahorrar código en las vistas, de forma que varias vistas puedan compartir código común que está en un único archivo externo.

      En un momento, luego de leer un rato sobre las posibles formas de implementarlo, más algunas ideas que tenía en mente, probé una pequeña implementación de un sistema de layout, y luego de un par de horas (y para mi sorpresa) lo teníaandando integrado con el framework. En este post mostraré como es que se utilizaría esta implementación de layouts.

      La idea principal era no tener que modificar demasiado las vistas de forma que las vistas ya creadas sigan funcionando bien aunque no tengan referencia a un layout. Por lo tanto inventé una tag que sirve para crear la referencia desde una vista:

      <layout name="blog" />

      Esta tag debe ser incluída luego de <html> y antes de <head>,
      para hacer más clara la referencia y más fácil de implementar el procesamiento de esa tag.

      El procesamiento debía ser muy rápido y casi no afectar la velocidad de procesamiento actual, de esta forma probé hacer un procesamiento de layout mediante expresiones regulares y mediante operaciones con strings, y la velocidad con las operaciones con strings fue muchísimo mejor que con expresiones regulares, y muchísimo mejor me refiero a varios órdenes por debajo:

      velocidad con expresiones regulares promedio: 0.03 ms
      velocidad con operaciones de strings promedio: 5.5E-5 ms

      El layout tiene la estructura de una vista pero no hace referencia al modelo y tiene dos variables disponibles para poder mostrar el contenido de la vista de la cual es layout, estas son $head y $body, que representan el contenido del <head> y del <body> de la vista.

      Este es un ejemplo de un layout:

      <html>
      <head>
      <style type="text/css">
      ...
      </style>
      <?php echo $head; ?>

      </head>
      <body>

      <div style="padding:10px; background-color:#6af;" align="right">

      <?php echo h('locale_chooser'); ?>
      </div>

      <div style="padding:10px;">

      <?php echo $body; ?>

      </div>
      </body>
      </html>

      Por último quien hace el proceso de la vista es una clase llamada LayoutManager que se
      encarga de resolver referencias a layouts y mostrar la vista generada. Si la vista no contiene una referencia a un layout, simplemente muestra la vista igual que antes.

      Si bien esta solución funciona bien, se puede mejorar en varios aspectos:

      • Chequeos de errores, para hacerlo más robusto.

      • Más flexible, por ejemplo poder acceder a más información de la vista como el título, ahora solo se accede al head y al body.

      • Poder incluir N niveles de layouts en cascada, podría servir para que un layout a su vez pueda tener un layout que
        lo contiene y poder definir distintas secciones de la página que se arma en distintas layouts.
      Esta característica estará disponible con la próxima liberación del framework, Yupp Framework PHP v0.1.3.

      viernes, 11 de julio de 2008

      Característica: devolver directamente el modelo

      Una nueva característica que vino con la versión 0.1.2 del framework es la de no necesitar explicitar la vista que se va a utilizar. Por ejemplo con la acción edit, la forma de especificar la vista a utlizar se hace mediante el retorno de llamar al método “render” de YuppController:

      class EntradaBlogController extends YuppController {

      public function editAction()

      {

      $id = $this->params['id'];

      $obj = EntradaBlog::get( $id );

      $this->params['object'] = $obj;

      return $this->render("entradaBlog/edit", &$this->params);

      }

      }

      Esta es la única forma de especificar la vista previo a la versión 0.1.2, con Yupp Framework PHP v0.1.2 se puede retornar solo el modelo y la vista se resuelve de forma automática por Yupp Framework:

      class EntradaBlogController extends YuppController {

      public function editAction()

      {

      $id = $this->params['id'];

      $obj = EntradaBlog::get( $id );

      $this->params['object'] = $obj;

      return $this->params;

      }

      }

      En este caso, el framework buscará una vista llamada “edit”, igual al nombre de la acción, dentro del directorio de vistas del controller “EntradaBlog”. También se podría retornar NULL o nada en caso de no querer mostrar modelo. En una próxima versión no será necesario tampoco retornar el modelo, ya que como “params” es un campo de “YuppController” puede ser accedido sin necesidad de retornarlo de forma explícita.

      La idea fundamental de estas pequeñas características es reducir la cantidad de código que es necesario escribir para implementar cierta funcionalidad y tener varias formas consistentes de hacer lo mismo de forma que cada usuario programe como más le guste y que el framework no restrinja esa libertad.

      sábado, 5 de julio de 2008

      Descargar Yupp Framework PHP v0.1.2

      Tenemos el agrado de anunciar la liberación de la nueva versión de Yupp Framework PHP, que ya está disponible para descargar desde:

      http://groups.google.com/group/yuppframeworkphp
      http://code.google.com/p/yupp/downloads/list
      http://www.simplewebportal.net/host/1022.htm

      Con esta versión hemos resuelto:
      • TICKET #34: mejorar el tema del ruteo implementando un componente especificamente para eso, y agregar custom mappings para poder modificar facilmente que accion de que controller ejecutar si viene determinada url.
      • TICKET #32: cambiar de lugar la funcionalidad de saber el nombre de una tabla dada una clase.
      • TICKET #43: no se verifican constraints sobre relaciones hasOne.
      • TICKET #46: simplificar el acceso a recursos estaticos como imagenes, css y js.

      Nuevas características:
      • Helper para cambiar el idioma (disponible para probar desde el ejemplo del blog).
      • Helpers para incluir Javascript y CSS.
      • Ahora las acciones pueden obviar el tener que devolver la vista, pueden devolver solo el modelo y Yupp busca y muestra la vista correcta => escribir menos código!
      • Nuevo paquete de ruteo con mapeos de urls que se pueden configurar a medida para permitir urls que no sigan las convenciones de Yupp.
      • Se modificó el ejemplo del blog para mostrar algunas de las nuevas características.
      Gracias por tu atención y si pruebas el framework esperamos tus comentarios!