Archivo para la Categoría ‘Symfony’

Libro: Desarrollo web ágil con Symfony2

Domingo, enero 22nd, 2012

Portada del Libro

Javier Eguiluz, el incansable programador de symfony, responsable del sitio symfony.es, el cual es uno de los principales sitios referencia del framework  symfony en español  y principal traductor de la documentación oficial de symfony al castellano, la cual nos ofrece gratuitamente a través de su sitio web librosweb.es, esta vez nos ofrece un libro de su completa autoría y que dice ser el primer libro publicado del mundo sobre symfony 2.0 (creo que es el primero luego la documentación oficial).

 

El libro tiene un costo de 10€ por lo que no vale la pena que lo cuelgues en alguna web para que los demás lo descarguen libremente (deja que el autor reciba su paga, ya mucho nos a dado gratis y además es un precio consciente) e incluye todas las actualizaciones posteriores y es en formato digital, se compra usando paypal, se ve muy bueno y completo y trata el tema del framework con el enfoque del desarrollo de una aplicación llamada Cupon, el cual es un clon de Groupon y su código fuente se encuentra disponible libremente a través de la página del proyecto Cupon en github.

Si quieres saber más del libro visita:

http://www.symfony.es/2011/12/27/ya-disponible-el-primer-libro-sobre-symfony2/ y la portada de http://www.symfony.es/

Acá te dejo una muestra del primer capítulo:

 

Aprende Symfony2 con el proyecto Desymfony

Domingo, agosto 7th, 2011

En el marco de las Jornadas Symfony 2011 llevadas a cabo en España, en donde hubo un curso de Symfony2, varias sesiones prácticas y un hacking day, nos llega una aplicación tutorial desarrollada el primer día: Desymfony.

La aplicación desarrollada es el sitio web ficticio de las propias Jornadas Symfony. Su finalidad es didáctica, por lo que ha sido necesario realizar algunas simplificaciones en su funcionamiento y arquitectura. No obstante, la aplicación sigue la filosofía y buenas prácticas recomendadas por Symfony2.

También se incluye una versión móvil, realizada por Pablo Godel, y mejoras adicionales realizadas por Ideup! en la rama ideup.

Esta aplicación sigue la filosofía de Symfony de “aprender haciendo” con aplicaciones tutorial como por ejemplo askeet, jobeet que han servido de mucho en el pasado para aprender este apasionante framework de desarrollo en php y demuestra lo que a ido creciendo la comunidad de Symfony en el mundo (que de por si ya es grande) ya que estamos acostumbrados que este tipo de aplicaciones fueran entregadas como material didáctico por el equipo de desarrollo de Symfony y en este caso Desymfony es entregada por los miembros de su comunidad de usuarios.

Para mayor información de este proyecto (como por ejemplo, como instalar), puedes ir directamente a su repositorio git:

https://github.com/desymfony/desymfony#readme

 

Graficando tu esquema de base de datos en Symfony

Miércoles, junio 23rd, 2010

Logo SymfonyUna de las cosas que más aburren y fastidian a los programadores es el documentar, sin embargo esta actividad es parte vital de cualquier proyecto de desarrollo,  ya decía en mi post anterior que una de las características del éxito de una aplicación de Software Libre es si esta, está bien documentada.

Bueno, luego de trabajar un buen tiempo con Symfony como framework de desarrollo para php, coincidencialmente descubrí una funcionalidad que no estaba documentada a simple vista en el libro de Symfony o en tutoriales que había leído ( o tal vez no me fije bien en esa parte ), esta funcionalidad, la cual creo que es provista por el ORM propel en sí,  te permite dado el esquema de tu base de datos generar un archivo de texto que puede ser usado por graphviz para generar el diagrama de relaciones.

Al ejecutar el siguiente comando en la raíz de tu aplicación:

symfony propel:graphviz

Esto genera un archivo con la extensión .dot en el directorio graph de tu aplicación, el cual puedes transformar en una imagen en formato png usando el siguiente comando:

dot -Tpng graph/propel.schema.dot -o graph/propel.schema.png

Claro debes tener instalado el paquete graphviz para poder hacer uso del comando dot, esto generará un gráfico parecido a este:

propel schema graphviz

Relaciones de tablas entre Estados, Municipios y Parroquias

Esto fue probado con diagramas de bases de datos complejos y los gráficos obtenidos fueron muy profesionales, bien dimensionados y ordenados, al parecer esta funcionalidad era un plugin que luego fue incorporado formalmente al core de Symfony, así que la poca documentación de uso que encontré fue la del mismo plugin en:

http://trac.symfony-project.org/wiki/sfPropelGraphviz

Editando templates de formularios en Symfony 1.2

Miércoles, mayo 19th, 2010

Logo Symfony Normalmente los formularios en Symfony se muestran con un poco de html incluido para hacerlos más agradables a la vista y además para evitar que el programador se preocupe de más en la presentación del mismo.

La forma en que salen los formularios en Symfony sirven como vienen por defecto a la mayoría de la gente, vienen por defecto con una presentación tipo tabla y una tipo lista, para seleccionar la tipo lista basta con agregar en la configuración de tu formulario la siguiente linea ( Ver sección “1.2.4  más allá de las tablas generadas” del manual de formularios para symfony 1.2 ):

$this->widgetSchema->setFormFormatterName(‘list’);

Ahora si no quieren ningún elemento tipo tabla y además no quieren ninguno tipo lista, tienen que reescribir su propia clase que herede de sfWidgetFormSchemaFormatter y reescriba sus métodos, en mi caso necesitaba un diseño completamente limpio, sin nada de etiquetas html, así que cree la carpeta widget dentro de lib y allí cree un archivo llamado sfWidgetFormSchemaFormatterNull.class.php, el contenido del archivo es el siguiente:

<?php

class sfWidgetFormSchemaFormatterNulo extends sfWidgetFormSchemaFormatter
{
protected
$errorRowFormat  = “%errors%”,
$errorRowFormatInARow  = “%error%”,
$errorListFormatInARow = “%errors%”;
}

Y en mi formulario declare el estilo a usar con:

$this->widgetSchema->setFormFormatterName(‘nulo’);

Si quieren saber que métodos reescribir o quieren fijarse de como esta hecho el de las tablas o las listas, revisen los siguientes archivos:

/usr/share/pear/symfony/widget/sfWidgetFormSchemaFormatter.class.php
/usr/share/pear/symfony/widget/sfWidgetFormSchemaFormatterList.class.php
/usr/share/pear/symfony/widget/sfWidgetFormSchemaFormatterTable.class.php

En mi caso tengo instalado symfony en /usr/share/pear/symfony/, ustedes busquen el path de su instalación de symfomy y traten de ubicar esos archivos.

Si quieren ahondar un poco más sobre el tema, pueden ir al siguiente enlace ( en ingles ):

http://www.thatsquality.com/articles/7-days-of-symfony-1-1-forms-widgets-and-validators-day7

Nota: Si van a copiar código de acá, tengan cuidado con las comillas dobles, ya que no se copian adecuadamente.

Sistema de gestión de escuelas

Domingo, mayo 2nd, 2010

Hace un tiempo escribí sobre i-educar una aplicación brasileña para la gestión de escuelas, la cual está en portugués y está más orientada  a que una prefectura/alcaldíaproyecto_alba_logo o municipalidad gestione desde un sitio web centralizado todo lo relacionado con las escuelas de su área.

En esta oportunidad les escribo para presentarles al argentino proyecto alba, el cual es el responsable de realizar una aplicación realizada en php usando MVC a través del framework symfony, lo cual garantiza que está realizada usando altos estándares de desarrollo y que es fácil de colaborar y modificar a nuestras necesidades. Está orientada a gestionar todo lo referente a una escuela, entre sus principales características tenemos:

  1. Lo más importante, es software libre usando la licencia GPL v2.
  2. A través de un poderoso perfil de alumno, maneja y controla las vacunas de los alumnos, datos personales, de contacto ( padres ), etc…
  3. Maneja las notas, horarios de clases, las materias de los alumnos.
  4. Mantiene registros de los profesores.
  5. Permite generar fácilmente constancias de estudio, boletines.
  6. Manejar  diferentes sedes.
  7. Generar reportes.
  8. Está completamente en castellano.
notas del boletin

Captura de pantalla del área de "Notas del Boletín"

Si deseas ver un demostración online de la aplicaciòn puedes ir al siguiente enlace:

http://demo.proyectoalba.com.ar/

El trac del proyecto, en donde van a conseguir documentación acerca de la instalación, código fuente, reportar bugs ( errores ) y demás en:

http://alba.pressenter.com.ar/cgi-bin/trac.cgi

La web oficial del proyecto:

http://www.proyectoalba.com.ar/

Un proyecto como este puede ahorrar costos y generar valor agregado, trasladando los costos de comprar una licencia hacía empresas/comunidades o personas de nuestro entorno o área, por adaptación, mantenimiento y soporte técnico y estás mismas comunidades pueden retornar lo que tomaron en forma de parches, mejoras al código, donaciones al proyecto original, cumpliendo plenamente con el ecosistema de autosustentabilidad del software libre.

Botones para enlaces en symfony

Lunes, marzo 29th, 2010

Una de las cosas que symfony como framework no tiene ( y no tiene por que tenerlo ) y que toda aplicación debe tener, es un set de botones coherente, liviano, simple, con código reutilizable y atractivo.

cancelar_Guardar

Teniendo tiempo buscando una solución para esto me encontré con múltiples opciones que no eran funcionales por que implicaban diseñar una imagen por cada botón, o era un diseño muy simple, o una etiqueta CSS por cada botón, o usaba javascript ( lo cual no es muy accesible ), pero a la final la perseverancia dio resultados y me conseguí este método de hacer botones y que era justo lo que estaba buscando y además funciona muy bien con cualquier navegador.

Acá voy a explicar como se usa en el framework symfony, sin embargo lo puedes adaptar a cualquier aplicación web.

Primero creamos un archivo css, llamado buttons.css y lo metes en el directorio web/css con el siguiente contenido:

/* BUTTONS */

.buttons a, .buttons button{
    display:block;
    float:left;
    margin:0 7px 0 0;
    background-color:#f5f5f5;
    border:1px solid #dedede;
    border-top:1px solid #eee;
    border-left:1px solid #eee;

    font-family:"Lucida Grande", Tahoma, Arial, Verdana, sans-serif;
    font-size:100%;
    line-height:130%;
    text-decoration:none;
    font-weight:bold;
    color:#565656;
    cursor:pointer;
    padding:5px 10px 6px 7px; /* Links */
}
.buttons button{
    width:auto;
    overflow:visible;
    padding:4px 10px 3px 7px; /* IE6 */
}
.buttons button[type]{
    padding:5px 10px 5px 7px; /* Firefox */
    line-height:17px; /* Safari */
}
*:first-child+html button[type]{
    padding:4px 10px 3px 7px; /* IE7 */
}
.buttons button img, .buttons a img{
    margin:0 3px -3px 0 !important;
    padding:0;
    border:none;
    width:16px;
    height:16px;
}

/* STANDARD */

button:hover, .buttons a:hover{
    background-color:#dff4ff;
    border:1px solid #c2e1ef;
    color:#336699;
}
.buttons a:active{
    background-color:#6299c5;
    border:1px solid #6299c5;
    color:#fff;
}

/* POSITIVE */

button.positive, .buttons a.positive{
    color:#529214;
}
.buttons a.positive:hover, button.positive:hover{
    background-color:#E6EFC2;
    border:1px solid #C6D880;
    color:#529214;
}
.buttons a.positive:active{
    background-color:#529214;
    border:1px solid #529214;
    color:#fff;
}

/* NEGATIVE */

.buttons a.negative, button.negative{
    color:#d12f19;
}
.buttons a.negative:hover, button.negative:hover{
    background:#fbe3e4;
    border:1px solid #fbc2c4;
    color:#d12f19;
}
.buttons a.negative:active{
    background-color:#d12f19;
    border:1px solid #d12f19;
    color:#fff;
}

Para darle un carácter de individualidad a sus botones se necesita colocar una pequeña imagen o icono a un lado y para ello nos bajamos el arsenal de 700 iconos 16x16px de FAMFAMFAM los cuales solo ocupan 1mb y además son libres de usar ya que tienen licencia Creative Commons Attribution, el archivo que nos descargamos lo extraemos y la carpeta icons la pasamos íntegramente al directorio web/images/

Ahora pasamos al código de nuestra aplicación, donde vayamos a usar un icono debemos incluir el archivo css, sin embargo si lo van a usar en la mayoría de vistas sugiero que lo incluyan en el archivo layout.php en mi caso lo tengo en app/frontend/templates/layout.php, simplemente agregamos la siguiente linea en la parte superior, debajo de todos los css que hayas declarado:

<?php echo stylesheet_tag(‘buttons’) ?>

Luego de esto ya podemos hacer disposición de usar nuestros botones en la vista

Por ejemplo en un formulario podríamos hacer lo siguiente, sustituyendo el código del botón por defecto y del enlace de cancelar:

CancelarCancelar

El class negative hace que el rolover dle botón sea de color rojo, el class positive hace que el rolover del botón sean verde y si no declaran ninguna clase, el rolover del botón sera en un bonito color azul claro.

Si quieren saber más al respecto, pueden visitar el enlace que tome como referencia en:

http://particletree.com/features/rediscovering-the-button-element/

Symfoclipse ha muerto

Martes, febrero 3rd, 2009

Acabo de ver en el sitio oficial de Synfoclipse el siguiente mensaje:

Al parecer el autor pensó que el desarrollo del plugin y su libre distribución bajo una licencia dual ( libre para usos no comerciales ) le resultaría económicamente sustentable mediante el pago de la licencia y los adsense del website del plugin y al no ser así decidió cerrar su desarrollo.

bueno… hay maneras de ganar mas dinero ( $$$$ ) que con adsense usando otros servicios de publicidad, no se por que la gente sigue confiando en adsense, para que me pagen 0.000000000000001 $ por cada click que den en la publicidad y ademas me paguen cuando tenga acumulados 100$ prefiero no colocar nada de publicidad.

Es lamentable de verdad que el autor cierre su desarrollo sin buscar alternativas de que le puedan permitir a su proyecto ser autosustentable, ni modo, debido a que hace tiempo publique una guía de como instalarlo, acá les dejo un pequeño mirror del plugin de la última vez que lo descargue para que al menos les pueda seguir sirviendo la guía:

http://www.richzendy.org/repo/symfoclipse/

Estoy también en:
Galería
Causas

Copyright © 2012 Richzendy.org. Search Engine Optimization by Star Nine. Distributed by Wordpress Themes