Primeros pasos con Symfony
Nunca antes he trabajado con ningún famework, lo más que he hecho ha sido aprovechar código de los CMS para conseguir mis objetivos (suena sucio lo sé).
Llevo desde hace dos semanas intentando meterle mano a Symfony, practicamente me he leído el libro online que hay actualizado a la v1.2 (aunque es como si no me hubiera leido nada).
He configurado varias máquinas windows y linux hasta conseguir un entorno de trabajo donde correr symfony sin problemas.
El caso es que abordar un proyecto (por pequeño que sea) es como si me quitaran la capucha en mitad del desierto mientras un helicoptero se marcha dejandome allí (o sea, más peridido que un hijo%__% en el día del padre).
Si hay algún gurú de Symfony que me pueda recomendar alguna guía o tutorial que me vaya enseñando poco a poco los entresijos con ejemplos practicos... lo agradecería mucho :)
Por cierto, me estoy mirando:
- http://www.symfony-project.org/jobeet/1_2/Doctrine/es/
http://www.maestrosdelweb.com/editorial/el-framework-symfony-una-introduccion-practica-i-parte/
http://www.maestrosdelweb.com/editorial/el-framework-symfony-una-introduccion-practica-ii-parte/
aRamirez
Los Plugins son mi asignatura pendiente, como siempre ando con el tiempo pegao en el culo, cuando desarrollo algo específico no me dejan tiempo para trasladarlo a un plugin. Hice hace poco (con la idea de transladarlo a un plugin) un gestor de proyectos inmobiliarios, un curro supero completo y con la idea de ser lo más reutilizable posible, pero la lástima es que en cuanto terminé de desarrollarlo me metieron otra cosa y zás!!, ya harás el plugin cuando tengas tiempo xD.
La velocidad es bestial, cuando llevas tiempo desarrollando con symfony se nota todavía mucho mas. Esta semana pasada me tocó hacer un portal inmobiliario (muy básico) y en menos de 3 jornadas (trabajando yo solo) ya estaba funcionando, con front, backend, importación de excell, importación de imágenes mediante carpetas, en fin un currazo que sin symfony podría haber tardado más de 15 días supongo. Ya os mostraré el portal cuando importemos todos los inmuebles (más de 6000 en un principio).
Un saludo!!
flai
A que es bestial!! Yo la primera vez que lo use para un proyecto serio conseguí hacer en un día el trabajo de una semana.
Algunos consejillos que probablemente ya los habreis tenido en cuenta, PLUGINS!, si puedes encapsular una funcionalidad completa, hazlo! y guardalo en un plugin. Si has creado unos helpers para filtrar IP no lo pongas bajo la carpeta /lib, crea un plugin, llámalo como te de la gana y copialo bajo la carpeta /plugins, que dentro de unos meses, cuando te vuelva a hacer falta sólo será copiar y pegar, olvindadote si el otro archivo que hay al lado tambien hacía falta o no. Los plugins dan todavía más de sí, porque puedes encapsular el modelo MVC completo, con sus routings y demás, increible.
Bienvenido a la panacea!
jfm77
aRamirez
Si es que... soy muy impaciente! (x'D). No, a ver, lo que pasa es que comencé a trabajar en una nueva empresa donde se ha montado un departamento nuevo (el de los tipos raros) que lo componemos otro chaval, mi jefe y yo. Total que me encontré con que por diversos motivos se eligió symfony como framework de trabajo y claro... me tocaba adaptarme y la verdad, tal y como están las cosas necesitaba arrancar lo más rápidamente posible.
El primer proyecto es una tienda de libros online, llevo a penas 3 semanas peleando con symfony pero ya me he familiarizado con la estructura de directorios, creación de formularios (con sus correspondientes helpers) me he creado una clase para validar IP's, creado pruebas unitarias y funcionales... y próxima parada, routing. En fin, que poco a poco, me voy enterando de cositas.
aRamirez
En eso estamos, apenas llevamos 2 semanas y hemos completado el 50% de la aplicación! yo estoy alucinando con la velocidad a la que se puede desarrollar y la facilidad de realizar cambios que de otro modo te harían cambiar muchísimas lineas de código (y ya hemos tenido varios cambios de tablas en la BBDD).
En fin, os iré contando. Muchas gracias a todos por las respuestas :)
PD: A ver si ponen emoticonos en el foro que sino esto está muy soso :P
aRamirez
Hola jfm77, creo que flai ha respondido a tu pregunta estupéndamente.
Yo también llevo algún tiempo trabajando con symfony (1.0 desde hace más de 1 año) y es cierto que al principio no sabes por donde meterle mano. Yo lo que te puedo recomendar es que, como ya has leido la documentación, te metas de lleno a currararte un proyecto con symfony, al principio vas a ir muy lento, pero es normal, ya que la curva de aprendizaje del framework es alta.
Intenta trabajar organizando el código, es muy importante que todo el código que escribas vaya en su capa correspondiente. Aunque al principio hará que vayas más lento, esta manera de trabajar te facilitará mucho las futuras actualizaciones del proyecto.
Por ejemplo, para sacar un listado específico de la BD y mostrarlo en una plantilla:
Modelo:
Tabla1Peer:
public function getListado(){
# Devuelve un listado especifico
$criteria=.... # Operaciones especificas para el listado
return parent::doSelect($criteria);
}
Controlador:
$this->listado = Tabla1Peer::getListado();
Vista:
foreach($listado as $producto){
echo $producto->getNombre();
}
Y sobre todo lo que te digo es que no aprendes hasta que no te peleas con varios proyectos. Así que a currar con Symfony ya!!
jfm77
flai
flai
jfm77
http://trac.symfony-project.org/wiki/ComparingPropelAndDoctrine
flai
según lo que me dices lo único que te hace falta es remangarte y pelearte con symfony de tú a tú. Sería buena leerte el tutorial de jobeet y hacerlo a la vez, pararte en cada paso, intentar entender qué se hace y porque, volver a los capítulos del libro en los que se apoya, etc...
Cualquier tengas dudas concretas intentaré ayudarte en las medidas de mis posibilidades.
jfm77
flai
http://www.symfony-project.org/book/forms/1_2/en/
Sin embargo, en cuanto al tema de versiones... es algo que no decido yo, estoy obligado a usar la v1.2
flai
flai
flai
flai
flai
Bueno, no sabía si decir algo o no porque creo que todavía me queda mucho para ser algo parecido a un gurú, pero bueno, ahí va alguna idea.
Decías que llevas dos semanas con Symfony, bueno, te hará falta alguna más. Al principio, cuando empecé hace año y medio, todo era demasiado "grande" así que ante todo te recomiendo paciencia, tienes que dejar que las cosas te empiecen a sonar, que la estructura de carpetas te parezca algo natural, "be water my friend", :)
El tutorial de Jobeet está muy bien cuando tienes algo se soltura, pero son demasiados conceptos para un novato, te recomiendo que lo primero que hagas en leerte la guía completa. Para la versión 1.2 todavía no hay una versión completa pero te puede servir muy bien la 1.0
http://www.librosweb.es/symfony_1_0/
Eso sí, evita el capítulo 10, formularios, ya que eso sí que cambia completamente en la versión 1.2.
Por otro lado, deberás plantearte qué te merece más la pena. La versión 1.0 es compatible con PHP 5.1, pero la 1.2 creo que necesita 5.2. En mi caso, muchas de las aplicaciones que se desarrollan se cuelgan en alojamientos de empresas de hosting, donde sólo funcionario symfony 1.0. Míra eso con detalle. Existe un tutorial análogo a Jobeet para symfony 1.0, se llama askeet.
He visto también que has puesto como link el tutorial de Jobeet para Doctrine, no se si lo has hecho queriendo y si eres consciente de que existen dos ORMs que actualmente están integradas con Symfony, Propel y Doctrine. Aquí te encuentras en la misma situación anterior, Doctrine requiere una versión de PHP 5.2.3+, mientras que Propel no.
En la web de symfony, en la pestaña de Documentation hay una gran cantidad de documentación, no solo manuales sino lo que llaman cookbook, está muy bien para cosas puntuales del día a día, como enviar un email.
Existe un blog en español sobre symfony, symfony.es, llevado por Javier Eguilez, alguien que no conozco personalmente pero que se merece todo mi respeto por la gran labor que lleva. Él ha sido quien ha traducido el tutorial de Jobeet al español y mucha otra documentación.
También te aconsejaría que cuando te surja una duda no la busque en Google. Sácate una cuenta del google groups de symfony (tanto el grupo general como symfony-es), verás que hay muchas preguntas ya resueltas que pueden hacer que no te pegues muchos cabezazos.
Bueno, al final me ha salido algo largo, :), conclusión: paciencia y a practicar, al principio cuesta pero luego no sabes como has podido vivir sin él.