Ir al contenido principal

¿Por qué Yii Framework?

En Soltel presumimos de tener una actitud innovadora, que nos obliga a probar las distintas tecnologías que van llegando al mercado, y que ajustándose a nuestro stack, puedan mejorar en algo nuestros desarrollos.

Una vez analizado el framework o librería, lo probamos en proyectos internos que nos permitan conocer con más detalle sus características. En este trabajo de campo es donde realmente se decide si es interesante o no añadir el framework a nuestro stack, y con ello ofrecerlo en los desarrollos que realizamos para nuestros clientes.

En este proceso, llevábamos bastante tiempo buscando un framework PHP que realmente aportara valor y se adecuara en tiempos de desarrollo, rendimiento y arquitectura a lo que necesitamos ofrecer en nuestros proyectos. Ya habíamos descartado frameworks como Prado, por ser bastante pesado y tener una arquitectura demasiado compleja.

Con Yii, sin embargo, nos hemos llevado una agradable sorpresa. Yii es un framework PHP, libre (licencia BSD), basado en programación orientada a objetos y que implementa el patrón de diseño MVC (Modelo-Vista-Controlador) el cuál es ideal para la programación Web. Fue diseñado por el creador de Prado, por lo que ha evitado los errores cometidos en la implementación de este framework.

Puede ser utilizado para todo tipo de aplicaciones Web. Es adecuado para desarrollar aplicaciones de gran tráfico como portales, foros, sistemas de administración de contenidos (CMS),... gracias a sus soluciones de caché sofisticadas.

Con las opciones de caché activadas, Yii puede soportar nueve veces más peticiones por segundo que Prado. Dejando al margen el caché, sigue ofreciendo mejores prestaciones (en este caso Yii multiplica por cuatro las peticiones que puede soportar Prado).

Otro de los motivos por los que Yii es tan rápido es gracias a la carga perezosa de funcionalidades en memoria. Es decir, las librerías no se cargan hasta que se tienen que utilizar. Esta técnica ha posibilitado que Yii de excelentes prestaciones en los distintos benchmarks realizados.

Otra de sus características es que viene integrado con jQuery y con una serie de widgets Ajax que el desarrollador puede ampliar a su gusto para mejorar la usabilidad y la experiencia del usuario.

Yii soporta generación automática de servicios web basados en complejos WSDL, así como estándares para internacionalización I18N y localización L10N.

Nos proporciona soporte para crear y ejecutar pruebas unitarias y funcionales basadas en PHPUnit y Selenium.

El desarrollo de una aplicación consta de tres pasos:

1. Creación de la base de datos
2. Generación del código PHP
3. Personalización del código.

Este framework nos permite generar el código de la capa de acceso a base de datos así como la capa vista a partir de las tablas de la base de datos. Yii incorpora una poderosa herramienta, Yiic, que nos permite generar los CRUD de todas las tablas de nuestra aplicación sin tener que escribir una sola línea de código. Después de este paso solo nos queda personalizar el código generado por Yii para adaptarlo a los requisitos de nuestra aplicación.



Yii cuenta con una documentación muy completa y en varios idiomas, además de una comunidad muy activa.

Estamos a punto de entregar nuestro primer proyecto desarrollado con Yii Framework, y la experiencia es más que satisfactoria. Por todo ello, Yii se ha ganado un lugar privilegiado dentro de nuestro stack tecnológico.

Comentarios

  1. Necesito ayuda para aprender yii =( Porfis si tienes ejemplos cuelgalos!! =(

    ResponderEliminar
  2. Si estás por Sevilla, podemos contactar, y te guío.

    Saludos.

    ResponderEliminar
  3. Estoy de acuerdo con el post. Estuve programando con Symfony durante unos meses y me di cuenta de la curva de aprendizaje tan importante que tiene; sin embargo, llevo un mes con Yii y hay muchas tareas que he llevado a cabo en 5 minutos, con ayuda de las extensiones y la integración de jQuery y validación Ajax.

    Estoy muy satisfecho con Yii y, por ahora, mis proyectos caseros y los que me encarguen van correr sobre este framework.

    ResponderEliminar
  4. Que tal
    Instale el Framework pero al ejecutar al archivo yiic bat me marca el error de que no encuentra php.exe

    ResponderEliminar
    Respuestas
    1. Has introducido la ruta correcta en yiic.bat?
      Has de ponerlo en esta linea
      if "%PHP_COMMAND%" == "" set PHP_COMMAND=php.exe

      Donde pone php.exe debes poner la ruta completa...

      Eliminar
    2. Debe incluir en las variables del sistema el path donde se encuentra el php.exe

      Eliminar
  5. Hola JAORSOFTWARE,

    Por lo que veo estás usando Windows. Yo suelo usar Linux. ¿Estás usando un paquete Apache+PHP+MySQL del tipo APPServ o Xampp?, ¿haz hecho algún cambio o instalado alguna extensión?

    ResponderEliminar
  6. Estoy utilizando Windows XP y tengo instalado WAMP.
    Pero afortunadamente ya lo resolvi.
    Simplemente modifique la variable Path del sistema operativo para que incluyera la ruta a PHP.

    Saludos

    ResponderEliminar
  7. Por favor he leido de este framework lo he instalado pero quiero saber mas el tutorial de la pagina oficial esta en ingles y se me hace super lento aprender Existe el tutorial completo en español (no solo el de instalar y darle con la aplicacion que biene por default sino aprender ha manejar gii, crud etc..)

    ResponderEliminar
  8. Que tal Anonimo.

    Realmente una de las problematicas YII es su poca documentación y fallta de ejemplos.

    SI eres nuevo en los frameworks; no te lo aconsejo; inicia con otros.

    Y dales un poco de tiempo mas para que se actualicen.

    Saludod

    ResponderEliminar
  9. Algún tutorial para usarlo con netbeans?

    ResponderEliminar
  10. jose, no conozco ningún tutorial para usarlo en Netbeans, de hecho, los IDEs son como las opiniones, todo el mundo tiene una. Netbeans es un buen IDE, no creo que sea complicado configurarlo para programar en PHP, no obstante, mi equipo para programar con Yii opta por Eclipse PDT.

    ResponderEliminar
    Respuestas
    1. Saludos
      Excelente tu informacion.
      Me gustaria conocer tu experiencia desde la vision de la productividad y agilidad en Ingenieria de software. Veo que usas el id Eclipse PDT.
      ¿Usas algun Plug-in para plasmar el GUI en jquery?
      ¿Usas wizard y/o metaprogramacion para cosas como por ejemplo CRUD-Scaffolding?
      ¿Algun otro elemento que agilice el proceso de desarrollo?
      ¿Cual herramientas usas para los reportes?
      Agradeceria mucho tu valiosa colaboracion
      Gracias
      Edison Sira (Venezuela)
      edisonsirac@gmail.com

      Eliminar
  11. Esta bueno, lo malo es que la configuración no es flexible. Manejamos estándares de programación y Yii no se acomoda al de la empresa, sino que la empresa se acomoda a la estructura de los proyectos Yii. Eso me parece muy mal.

    ResponderEliminar
  12. Que tal Alejandro, me parece interesante tu artículo. Yo comencé con yii hace poco y la verdad he quedado sorprendido, he desarrollado hasta la fecha un sistema con este framework y voy por el segundo (help desk). Estoy interesado en promocionar y desarrollar sistemas en la ciudad de México, se ve que ustedes ya tienen tiempo trabajando de esto y bueno queria preguntarte si tienes algunos tips o algo que me sirva para aterrizar mas el tema.

    ResponderEliminar
  13. Estoy interesado en aprender el framework de quien ya lo esta utilizando.
    Estoy dispuesto a trabajar gratuitamente para poder aprender

    Saludos
    Kavi

    ResponderEliminar
    Respuestas
    1. kavitama@hotmail.com

      Perdon por haber perdido el rastro de este mensaje

      Eliminar
  14. Yo tengo tiempo trabajando con YII, es muy superior a otros frameworks que he probado.. muy orientado a objetos. Muy buena libreria de widgets (WEB2.0), muy rapido, muchas extensiones, buen foro/comunidad, y compre los 2 libros disponibles en ingles (espero que pronto los traduzcan), y hay muchos ejemplos disponibles.. considero que no es del todo automatico pero por eso me gusta,.. me da mucho control. Lo recomiendo 100% incluso sobre Symfony..

    ResponderEliminar
  15. Hola Alejandro! llevo unos meses con un proyecto mediano-grande en Yii, tengo la mayor parte de las vistas terminadas, (solo las vistas) y he comenzado a organizar el trabajo, tengo gran parte de las vistas públicas también hechas (solo con controladores que me muestran páginas "estáticas" sin contenidos dinámicos)... y aquí me encuentro el primer problema para optimizar el código, sobre todo las vistas... soy de Sevilla también... hay alguna forma de contactar? Muchas gracias por tu ayuda! Saludos!!

    ResponderEliminar
  16. De todos los Framework para PHP este es el que más me ha llamado la atención, no sólo por lo descrito aquí, si no que además se supone que cuenta con EDP (Event Driven Programming).

    ResponderEliminar
  17. Angel en respuesta a tu comentario te comento que tu puedes moldear tu estructura de trabajo si es basado en mvc por su puesto y acoplarlo a los estándares que mantienes en tu empresa, debes de modificar directamente en el framework para lograr realizar esto y luego se encarga de replicarlo, es el framework mas flexible que he tenido la oportunidad de utilizar.

    Saludos

    ResponderEliminar
  18. Hola necesito ayuda con yii estoy atorada en un proyecto y como estoy comenzando con el framework no encuentro la solución por favor alguien que me asesore.

    ResponderEliminar
  19. Que tal Isis
    Que problemas tienes?
    En que etapa de aprendizaje estas?

    Saludos

    ResponderEliminar
  20. Excelente artículo, donde puedo encontrar mas información para saber como utilizar este framework?

    ResponderEliminar
  21. Excelente artículo, donde puedo encontrar mas información para saber como utilizar este framework

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Métrica v3 vs Metodologías Ágiles

Métrica v3: Metodología de Planificación, Desarrollo y Mantenimiento de sistemas de información que propone el Ministerio de Administraciones Públicas. Cualquier defensor de la técnicas, metodologías y herramienta ágiles sostendrá que Métrica v3 es un sistema demasiado pesado, tanto en su implementación, como en sus procesos de mantenimiento. Yo lo corroboraría, pero sin demonizarla. Estoy acostumbrado a que en este mundo de la informática se creen auténticos "dogmas de fe", que acarrean sus propias "guerras religiosas". Algunos ejemplos podrían ser: Software privativo vs Software libre, Windows vs Linux, Web Services vs Rest, Oracle vs MySQL, Explorer vs Firefox, Apache vs IIS, Eclipse vs Netbeans, y así podríamos seguir con un largo etcétera. En vez de buscar la mejor solución, o soluciones universales, yo propongo realizar un intenso análisis, y respondernos ciertas preguntas. Por regla general, no hay una solución que valga "para todo". La pregunta que

Lenguajes: Pasado, Presente y Futuro

Escribo este post al hilo del artículo que he leido en dosideas.com. En él, se habla de las habilidades que debería tener un programador para tener un currículum relevante en los próximos cinco años: 1. Uno de los "3 Grandes" (Java, .NET, PHP) 2. Aplicaciones Ricas de Internet (RIA - Rich Internet Applications) 3. Desarrollo web 4. Servicios web 5. Habilidades humanas 6. Un lenguaje de programación dinámico y/o funcional 7. Metodologías ágiles 8. Conocimiento de dominio 9. "Higiene" de desarrollo 10. Desarrollo móvil A partir de este artículo, estuve debatiendo con algunos compañeros y saqué algunas conclusiones que quiero plasmar aquí. Pienso que el artículo es un poco mejorable, dada la arbitrariedad con la que se han escogido los conocimientos a adquirir. De hecho, muchas de esas habilidades hay que tenerlas en el presente (yo cumpliría de 9 a 10). Me voy a centrar en el punto 1, uno de los "3 Grandes" (Java, .NET, PHP). Antes de hablar de "gran