Blog

Etiqueta: symfony

Buscamos programador PHP para blackslot

Publicado en Empleo en octubre 18, 2011 11:02 am

Chanclas_Blackslot

Si eres un entusiasta de las nuevas tecnologías y crees, firmemente, que las aplicaciones sirven para hacer la vida más fácil a cualquier usuario, tenemos un sitio para ti en Blackslot.

Buscamos un analista desarrollador de PHP con conocimientos de Symfony y MySQL.

Aunque no son requisitos imprescindibles, valoraremos positivamente tu experiencia con otros lenguajes como Python, Perl y HTML 5 o conocimientos de diseño.

Blackslot es una startup tecnológica que apuesta por proyectos frescos que están en fase embrionaria y queremos que nos ayudes a liderarlos. Además, colaborarás con las tareas de desarrollo interno y consultoría IT.

El emprendizaje es otra de las cualidades que estimamos mucho, razón por la que tus ideas siempre van a tener cabida en Blackslot y el apoyo por parte del departamento de sistemas. Sabemos que estamos en un sector que avanza de manera vertiginosa por lo que amparamos la formación continua y la consecución de certificaciones técnicas para nuestro equipo. También contarás con la ventaja de tener un horario flexible.

¿A qué estás esperando?. Mándanos tu currículo a empleo@blackslot.com y sé tú quien estrene las nuevas bambas de bienvenida que tenemos esperando en la entrada. Queremos que te sientas cómodo.

Jornadas sobre Symfony en Castellón

Publicado en Cloud Computing Desarrollo web Eventos en mayo 20, 2010 1:05 pm

Los próximos días 5 y 6 de Julio, el equipo de decharlas.com ha organizado la  primera conferencia española dedicada en exclusiva a Symfony en la universidad Jaume I de Castellón.

symfony

Esta conferencia está dirigida a todo tipo de desarrolladores Symfony. El programa provisional es el sigueinte:

  • Introducción a symfony: charla introductoria al entorno de desarrollo, explicando las diversas partes de las que consta.
  • Domesticando los formularios: explicación del sub-framework de formularios que posee symfony (sfForm).
  • Say what? Be I18n my friend: internacionalizando nuestros proyectos.
  • CMF is the new CMS: evolucionando los CMS.
  • Symfony en España: trata de mostrar casos reales de empresas y productos que hacen uso de dicho entorno de trabajo.
  • No reinventes la rueda. Plugins: cómo crear nuestros plugins para ser reutilizados en diversos proyectos.
  • Un gran poder conlleva una gran responsabilidad (Admin Generator): crear nuestro propio tema para la parte de administración de contenidos.
  • Cose que te cose. Patrones de diseño y test unitarios: no sólo se trata de enseñar symfony sino también buenas prácticas y metodologías en el desarrollo web.
  • Conociendo tus herramientas de desarrollo: tratará sobre herramientas de apoyo en el desarrollo de software (control de versiones, IDE’s, integración continua, …)
  • Desarrollo basado en estándares: novedades en HTML5, XHTML 2.0 y CSS3.
  • ORMs en symfony: Doctrine, Propel.
  • Symfony, cloud computing y web escalables: desarrollo web pensando en el rendimiento y la escalabilidad.

Entre charla y charla, se habilitarán espacios de tiempo para que los asistentes hagan networking y conozcan a otros miembros y empresas de la comunidad Symfony.

Gracias al trabajo desinteresado de los organizadores David Castelló y Javier López y gracias a la colaboración de la Universidad Jaume I, la asistencia a las jornadas será gratuita.

Dado que nosotros ofrecemos servicios de desarrollo web en Symfony, estaremos presentes en este evento sin falta. Si desarrollas en php y te interesa symfony no dudes en apuntarte.

Desarrollo ágil con symfony, doctrine y mysql workbench

Publicado en Desarrollo web en enero 26, 2010 11:40 pm

Desde hace ya unos cuantos años, en el desarrollo de aplicaciones web se tiende a utilizar herramientas que contribuyen no a que trabajemos más rápido, sino más ágil.

Ya no tiene sentido contar con grandes equipos de desarrollo, de hecho el nivel de productividad de un equipo formado por programadores y analistas suele verse afectado negativamente cuanta más cantidad de personas estén involucradas en el proyecto.

Normalmente las aplicaciones web conllevan un montón de tareas que son repetitivas o que pueden abstraerse o automatizarse. Conseguir reducir el tiempo que necesitamos invertir para realizar dichas tareas es clave para conseguir ser productivos.

Al igual que en otros lenguajes como ruby, python o c#, en php disponemos de varios frameworks diseñados para conseguir reducir estas tareas y ofreciéndonos una plataforma de calidad, compatible con TDD y centrada en ofrecernos arquitecturas REST, cosas claves en aplicaciones web.

De entre los frameworks más serios se encuentran Symfony y Zend Framework, ambos de una calidad y documentación extraordinaria. Symfony tiene la ventaja de contar con una comunidad muy fuerte de desarrolladores en España, y de casos de éxito tan rotundos como Yahoo Answers, Daily Motion y Delicious.

Además de contar con un potente y seguro motor para desarrollar formularios, un sistema de enrutamiento muy avanzado fácilmente internacionalizable, una arquitectura extensible por diseño, y la posibilidad de usar módulos de otras plataformas con Zend Framework o los nuestros propios, los creadores de symfony han desarrollado su propio orm llamado Doctrine que podemos utilizar para atacar a cualquier base de datos cuyo cliente sea compatible con PDO de php.

Doctrine viene por defecto con Symfony, pero también podemos usar la genial alternativa Propel, que personalmente nos permite hacer de forma mucho más elegante la i18n.

Como todo desarrollador con experiencia sabe, el crear el modelo de base de datos para nuestra aplicación y las clases que van a permitirnos operar con ellas, es la parte que probablemente conlleve más tareas automatizables o potencialmente abstraibles. Por ello, es muy importante el uso de un orm que nos automatice todo el trabajo.

Para muchos programadores esto les parecerá un error, ya que a veces solemos preocuparnos demasiado pronto por temas de rendimiento cuando en realidad deberíamos preocuparnos por terminar unas cuantas fases previas que son las que realmente nos van a permitir tener el proyecto online con calidad en un tiempo aceptable.

Crear el modelo

Como la mayoría de cosas en symfony, para crear nuestro modelo podemos hacerlo mediante un archivo de configuración yaml.

Este archivo se llama schema.yml y se ubica en el directorio config/doctrine, siendo relativo a todas las aplicaciones de nuestro proyecto symfony.

La sintaxis es bastante comprensible y nos permite de una forma limpia y sencilla representar nuestro modelo de datos.


---
detect_relations: true
options:
  collate: utf8_general_ci
  charset: utf8
  type: InnoDB

User:
  columns:
    user_id:
      type: integer(4)
      primary: true
      notnull: true
      autoincrement: true
    name:
      type: string(45)
      notnull: true
    email:
      type: string(90)
      unique: true
      notnull: true
    bornDate:
      type: timestamp
      notnull: true
  options:
    charset: utf8
    collate: utf8_general_ci

Este archivo de configuración nos permite tener un esquema fácilmente mantenible que permitirá a symfony automatizar las tareas de creación del código sql para crear la base de datos, además de todas las clases php que usaremos para trabajar con la misma.


#creamos el código sql encargado de crear la base de datos
php symfony doctrine:build-sql

#creamos las clases php para trabajar con esta base de datos
php symfony doctrine:build-model

Esto nos ha ahorrado una cantidad increíble de tiempo, que tendríamos que haber invertido en tareas que en principio no son costosas en complejidad pero si en tiempo.

Vemos ahora cómo insertar un registro en la tabla que hemos creado, hacemos un select, un update y lo borramos.


//hacemos un insert en la base de datos
$user = new User();
$user->name = "Manolo";
$user->bord_date = date("d-m-Y",strtotime('1974-02-11'));
$user->save();

//hacemos un update
$user->name ="María";
$user->save();

//eliminamos el registro
$user->delete();

//hacemos un select
$q = Doctrine_Query::create()->select('u.name')->from('User u')->where("u.user_id = ? ") ;
$items = $q->execute(array(1));

foreach($items as $item){ echo $item->name;  }

Generando el schema.yml desde Mysql Workbench

Hasta ahora nuestro mayor trabajo a la hora de crear nuestro modelo, sin contar el tiempo que hemos invertido en pensar su diseño, ha sido crear el archivo schema.yml.
Esto también se puede automatizar mediante un plugin para mysql workbench que nos permitirá exportar nuestro diagrama e/r directamente a un archivo.yml.

mwb
Con nuestra tabla ahora podremos crear nuestro schema.yml desde el menú plugins/catalog, pudiendo generar un archivo o directamente pegarlo en el portapapeles.

Hay que tener cuidado con este plugin ya que nos nombres de las clases del modelo, que represantan las tablas de nuestro modelo, las escribirá en minúsculas cuando por convención deberían empezar con la primera letra capitalizada.

Conclusión

Actualmente existen diferentes herramientas y técnicas que nos permiten ser muy productivos a la hora de desarrollar aplicaciones web, como es el caso de Symfony y Doctrine.

Acceder a la configuración de symfony con sfConfig desde una tarea

Publicado en Desarrollo web en enero 11, 2010 1:55 am

En ocasiones cuando creamos una tarea que debe ejecutarse desde línea de comandos en una aplicación web escrita con Symfony, necesitamos tomar algunos valores de los archivos de configuración para no hardcodearlos en el código interno.

Para poder hacerlo, necesitamos especificar el nombre de la aplicación de la cual queremos leer el archivo de configuración. En caso de no indicarlo, Symfony no buscará los valores en ningún archivo de configuración.

Lo conseguimos mediante el parámetro –application al invocar la tarea


php symfony namespace:tarea --application=frontend