Frameworks PHP

txandy

#59 entonces symfony no es para ti... mirate laravel, codeignitet o cake :)

1 respuesta
B

http://systemsarchitect.net/performance-benchmark-of-popular-php-frameworks/

2 1 respuesta
elkaoD

#62 ugh, iba bien hasta que he leído I benchmarked “quick start” projects.

Sin una linea base común, ha medido los cojones. ¿O soy yo el que ha entendido mal?

BTW, para comparar con no-PHP (y PHP también): http://www.techempower.com/benchmarks/

1 2 respuestas
MisKo

#61 que tiene de diferente x ejemplo laravel para que me lo recomiendes? :)

1 respuesta
txandy

#64 Yo entiendo(estoy empezando con symfony también) que symfony es una maquina formada por diferentes elementos y para sacarle el máximo partido hay que usar esos elementos que te ponen.

Si ya de primeras piensas en no usar el sistema de formularios que tiene, tal vez, puedes mirarte Laravel.

Es más sencillo de aprender, el sistema de plantillas es muy sencillo pero potente, claro esta que no esta a la altura de Twig, pero no tendrás problemas con los diseñadores porque el código se pone {{ $hola }} es igual a <?php echo $hola ?> las condiciones con @if(a>b) hola mundo @endif que seria algo como <?php if(a>b):?> Hola mundo <?php endif;?>

Laravel comparte módulos de Symfony, creo recordar que el sistema de rutas era uno de ellos, te recomiendo que te lo mires.

Con Laravel no estarás "obligado" a usar elementos como en Symfony, o hasta donde yo he llegado no he tenido problemas.

1 respuesta
MisKo

#65 No voy a desechar symfony por el tema de los componentes, solo quiero saber que, si me apetece, puedo usar mis propios formularios sin tener que usar los suyos.

Ademas, una vez metas reglas de validación, a parte de en el cliente, tb se valida en el servidor con dichas reglas y si fallan vuelven al formulario, por lo que está genial en ese sistema.

Supongo que ,con el tiempo y con el uso, una persona acostumbrada usaría symfony para todo, pero yo por ahora no le veo utilidad a paginas web normalitas, si no que lo veo mas para proyectos mas grandes.

Aun así es mi opinión. Me voy a mirar laravel tb, por que puestos a probar, pruebo de todo, pero seguire tambien con symfony :)

Si no es mucho molestar, me gustaría que la gente que ya use Symfony por defecto, pusiera para que tipos de proyectos lo han usado.

EDIT PARA NO DOBLE POSTEAR:

La parte de login de Symfony está bien, pero hay alguna forma de marcar el auth sin hacer el login ?

Algo del tipo, SetRole( "NOMBRE" ) ; para el usuario que carga ese código en concreto.

1 respuesta
txandy

#66 yo pienso como tu, también veo symfony para algo medio-grande para proyectos pequeños creo que es demasiado.

Seguramente los usuarios expertos de symfony lo usen para todo, pero por lo que he leído mucha gente que usa symfony , lo usa para proyectos grandes y para cosas más pequeñas frameworks más ligeros, CI, Laravel, etc.

Por el tema de usar o no los componentes, supongo que los puedes NO usar, pero perderás alguna funcionalidad que tengan seguramente. Todo esto lo digo de suposición, ya he comentado que estoy empezando como tu :)

1 respuesta
MisKo

#67 supongo que lo lógico, es que si no los usas, puedas implementar algo de su funcionamiento.

Por ejemplo, la pregunta que he hecho anteriormente.

Symfony me ofrece un archivo de seguridad donde implementar perfectamente los roles de los usuarios de cada ruta. Si no se cumple el rol, el usuario es llevado a una zona donde se tiene que loguear.

Aun usando esto, si el login lo quiero plantear como yo quiera, debería disponer de una opción para setear el role del usuario a mano, para que yo haga mis comprobaciones manualmente y, si todo se cumple, establecer el rol al que yo quiera.

Vamos, es un ejemplo de algo que se me ocurre y que se podría dar perfectamente.

HeXaN

La gracia de un framework es, entre otras cosas, que no te tengas que preocupar de cosas "absurdas" como es el login, permisos, auth y demás. Así te centras sólo en la programación de tu web y su diseño.

1 respuesta
MisKo

#69 me parece muy bien, pero si yo quiero comprobar que, para que el login de un usuario sea valido:

  • Que el usuario exista y los datos concuerden
  • Que el ultimo pago que ha realizado un usuario, haya sido en el ultimo mes
  • Que el numero de quejas hacia ese usuario en el ultimo mes sea inferior a 5
  • Si todo lo anterior se cumple, sacar de la base de datos el rol del usuario y asignárselo

Pues, con un sistema de login predefinido no me vale y tendré que usar el mio propio.

Que estoy mirando el manual y empiezo con symfony, por lo que desconozco si este tipo de cosas se puede hacer fácilmente o no , pero vamos, la opción hay que tenerla.

Esta claro que si usas un framework, es para que las cosas básicas no tengas que rehacerlas, pero, cuando la funcionalidad se sale de lo básico, hay que hacerla a mano.

Que tengo una web muy simple donde el login se remite a user y clave?, pues usare lo que viene por defecto, que no, pues me lo programo yo.

En mi opinión, lo que hace bueno a un framework es que tenga lo básico, pero que te sea facil implementar algo si se sale de la funcionalidad normal.

1 respuesta
Merkury

#70 Para symfony FOSUserBundle.

Yo por ahora lo estoy usando en un proyecto grande, pero esto --> http://qrframe.cornerofdreams.es es Syfmony también y es un proyecto realmente pequeño, lo unico que tiene aparte de la portada y del about, es que leyendo los QR te lleva a las fotos de la exposición, lo hice con syfmony mas que nada por la comodidad de tener el login hecho y poder hacer un panel de control despreocupandome de muchas cosas.

B

#63 si, ese benchmark es un poco inexacto porque por ejemplo compara symphony que por defecto te carga mil módulos con otros frameworks compactos pero más o menos te puedes hacer una idea de rendimiento. La lentitud de zf2 con respecto a zf1 te la puedo confirmar.

1 respuesta
MisKo

#72 Ahora que veo la pagina que ha puesto, alguien ha probado phalcon ?

http://phalconphp.com/

Pone que es el mas rapido, y en la pagina oficial pone que actua como una extension en C, por lo que el rendimiento es muy bueno

1 respuesta
B

#73 normal, al ser una extensión de php hace "trampa".

1 respuesta
MisKo

#74 Si, eso lo he imaginado, pero si te da todo lo que te da symfony por ejemplo, y se ejecuta 10 veces mas rapido, aunque sea una extension de apache, debería ser el framework que usara todo el mundo, no?

Simplemente por temas de rendimiento xD

2 respuestas
B

#75 Pierdes portabilidad, el debug será un problema, estás atado a esa extensión(bugs, actualizaciones),etc.. De todas formas en php el 90% de los problemas de rendimiento es por código mal optimizado o implementado y eso ningún framework te lo solucionará. Ahora mismo a no ser que seas autónomo la única medida para usar un framework u otro es la oferta/demanda laboral y eso significa symphony o zend. Hay decenas de frameworks y muchos muy sencillos de usar que facilitan la vida al desarrollador pero no siempre se puede usar lo que cada uno quiere.
Si lo que tienes es un sitio con una cantidad ingente de tráfico y buscas HA PHP no es la mejor alternativa independientemente del framework que uses.

1 respuesta
MisKo

#76 Si, lo que dices es cierto. El simple hecho de tener que ser una extensión de Apache, ya provoca que, o tienes un servidor dedicado que configurar para ejecutar la aplicación, o te dan por saco xD

EDIT: me estoy enamorando de laravel xD

MisKo

Aunque haga doble post, no tiene nada que ver con mi anterior post :P

Para toda la gente que quiera probar Laravel, hay una "pega" importante, y es que por defecto, laravel no lleva una instrucción para generar los modelos del ORM desde una base de datos ya creada como si hace Symfony.

Pues si la base de datos es MySQL , un usuario ha creado una pagina ( http://mwb.thinkers.it/ ) a la que subis el archivo .mwb (que lo genera MySQL Workbench ) y os proporciona automaticamente un zip con todos los modelos creados para Eloquent.

Yo acabo de probarlo con una base de datos normalita, y me ha creado todo bastante bien, incluyendo las relaciones entre las tablas y todo.

1 respuesta
PiradoIV

#78 yo creo que eso es normal, si Laravel se quiere enfocar al TDD, integración continua y demás, lo suyo es que la estructura de la base de datos la generes con migraciones y no al revés (mira también Schema builder.

2 respuestas
MisKo

#79 si, es otra opción bastante buena.

Yo lo decía mas por comodidad, ya que por ejemplo, una vez pienso una aplicacion y establezco como va a ser la base de datos, tardo nada en crearla con phpmyadmin y establecer las distintas relaciones entre tablas y tal.

Supongo que es cuestión de acostumbrarse a un proceso a la hora de crear los proyectos, pero teniendo las 2 opciones, mejor :)

1 respuesta
elkaoD

#79 migraciones ftw

Cuando en el curro pasamos a migraciones con Django, todo se volvió de color de rosa.

M

Yo no entiendo muy bien lo de las migraciones...

Tengo en MySQL una base de datos con sus foreign keys etc.

Para qué sirve exactamente?

1 respuesta
MTX_Anubis

#82 Pues sobre todo por temas de producción. Porque si tienes algo en producción, es más sencillo ejecutar un comando que te cambie las tablas, columnas, nombres, etc. que hacerlo a mano con lo que ello puede acarrear.

Es una forma de llevar la evolución de la base de datos de tu aplicación, la mejor de hecho y si quieres hacer una regresión la haces y listo, por poner otro ejemplo.

No sé, lidiar directamente con la bbdd de esa forma es tan arcaico y molesto... xD

MisKo

Si habláis tan bien de las migraciones, tendré que probar a hacerlo de ese modo.

Algún truco para la gente que empieza con Laravel para que no sea tan tedioso hacer todas las clases?

Merkury

Yo el tema de las bases de datos sinceramente #80 lo de ponerme con Phpmyadmin a hacerlas a mano lo veo lo mas tedioso del mundo, antes lo hacía así, pero desde luego con Doctrine y el schema builder que tiene, suerte es lo mas cómodo del mundo.

MisKo

Supongo que será costumbre de cada uno también xD

Aun asi, tampoco he probado de la otra forma, por lo que igual cuando la pruebe, me olvido totalmente del phpmyadmin

zoeshadow

Lo mas gracioso es que habláis de rendimiento y seguramente ninguno de los que estemos aquí vayamos a hacer una web con suficientes visitas concurrentes como para atascar Symfony..

Aparte que ya hay unas cuantas Empresas / Startups que están usando Symfony en su stack por la velocidad de desarrollo y por el rendimiento.

Por ultimo comentar a los que os interese aprender/trastear con Symfony, pero os parezca demasiado grande para alguno de vuestros proyectos, probad Silex, es un microframework creado por Fabien Potencier ( el creador de Symfony ), que usa algunos de los componentes de Symfony, y te deja ir añadiendo las partes que mas te interesen ( Doctrine / Twig / etc )

Es muy interesante también si vas a hacer un servicio REST, ya que te lo puedes montar en un periquete.

http://silex.sensiolabs.org/

#88 https://www.google.es/search?q=rest+services&aq=f&oq=rest+services&aqs=chrome.0.57.4688j0&sourceid=chrome&ie=UTF-8

Es un tipo de arquitectura de Software

M

qué es un servicio REST?

2 respuestas
elkaoD

#88 REST = REpresentatioal State Transfer. Es un término acuñado por Roy Fielding (uno de los principales autores de la especificación de HTTP).

Es básicamente como funciona HTTP: el cliente manda una request al servidor pidiendo la representación de un recurso (en el caso de HTTP, una URL). Las request son stateless y todo se basa en transiciones de estado a partir de URLs y manipulación de recursos a través de esta representación.

La clave de todo es: recursos.

Ojo, una arquitectura REST no tiene por qué ir sobre HTTP. REST es una abstracción sobre HTTP pero puede ir sobre otros protocolos (aunque la idea evidentemente surgió de HTTP).

Aquí más en profundidad: http://en.wikipedia.org/wiki/Representational_state_transfer

Ahora al meollo: un servicio REST es un servicio cuya API funciona por REST. Normalmente cuando la gente dice servicio REST se refiere a servicio HTTP que cumple con el concepto de REST (stateless, representación de recursos, etc.) usando los verbos GET/PUT/POST/DELETE.

En concreto se refieren a: http://en.wikipedia.org/wiki/Representational_state_transfer#RESTful_web_APIs

1
F

Pongo uno por que me acaba de dar trabajo , Yiiframework : http://www.yiiframework.com , esta pensado para facilitarte la vida en muchos aspectos, aunque le pesan los años para según que cosas, muy sencillo de usar.

1 respuesta