No estás registrado (Registrarse)

Vanilla 1.1.10 es un producto de Lussumo. Para más información: Documentación, Soporte.

    •  
      CommentAuthorignatius
    • CommentTimeJun 3rd 2012
     # 1
    Me imagino que, como muchos, cada vez que hago un proyecto mediano que requiere cierta dosis de programación a medida me termino efrentando a preparar o integrar:

    - Panel y entorno de administración
    - Zona de usuarios registrados (que no administradores)
    - Sistema de gestión de templates
    - Login, sesiones y gestión de usuarios, permisos, registro, validación, avatar, recuperación de password....
    - Páginas ("semi" estáticas) y su cacheo
    - Artículos estilo blog/noticias-periódicas
    - Formulario/s de contacto
    - Gestión de contenidos multiidioma vía lang files y de categorías en base de datos
    - Plantillas de correos
    - Uploads, gestión básica de archivos
    - Saneamiento y filtrado de las entradas de usuario (vigilar que no metan nada raro, inyecciones, etc.)
    - FAQ
    - Soporte/tickets
    - Mantenimiento periódico / copia de seguridad
    - URLs limpias

    Todo eso como punto de partida común para un buen número de sitios independientemente de la lógica y funcionalidades propias principales del sitio; por ejemplo si es un sitio de presupuestos/freelance (solo por poner un ejemplo) todas las las funcionalidades propias del registro y publicación de proyectos, presupuestos, aviso, caducidad, mensajería interna...

    Conozco CodeIgniter, CakePHP y otros frameworks que facilitan (aunque también a veces complican) una buena estructura y unos cimientos bastante razonables sobre los que construir modularmente (con bloques propios o ajenos) este tipo de proyectos.

    Pero lo que yo busco es un punto intermedio entre framework y CMS que sirva de punto de partida para poder centrarse en el desarrollo del módulo central de nuestra aplicación. ¿Cómo hacéis esto? ¿partís desde cero? ¿tenéis vuestra propia solución? ¿usáis algún CMS?
    •  
      CommentAuthorPing
    • CommentTimeJun 3rd 2012 editado
     # 2
    Yo creo que todos estos problemas te los soluciona symfony, (Conozces CodeIgniter, CakePHP y otros frameworks, a mi entender no son tan completos)

    http://symfony.com/

    Tiene algo denominado bundles, que son codigo que instalas, y con un pequeño configuración, tienes una admin, usuarios, comentarios funcionando.

    http://knpbundles.com/


    - Panel y entorno de administración

    http://knpbundles.com/sonata-project/SonataAdminBundle

    - Zona de usuarios registrados (que no administradores)

    http://knpbundles.com/FriendsOfSymfony/FOSUserBundle

    - Sistema de gestión de templates

    Symfony usa Twig, pero puede usar cualquier otro

    http://twig.sensiolabs.org/

    - Login, sesiones y gestión de usuarios, permisos, registro, validación, avatar, recuperación de password....

    http://knpbundles.com/FriendsOfSymfony/FOSUserBundle

    - Páginas ("semi" estáticas) y su cacheo

    Tiene caché interna y soporte para varnish ( CACHE MUUY potente)

    https://www.varnish-cache.org/

    - Artículos estilo blog/noticias-periódicas

    http://knpbundles.com/sonata-project/SonataPageBundle

    - Formulario/s includios (de contacto lo tienes que hacer tu )

    - Gestión de contenidos multiidioma vía lang files y de categorías en base de datos

    Incluido

    - Plantillas de correos

    Incluido

    - Uploads, gestión básica de archivos

    Incluido

    - Saneamiento y filtrado de las entradas de usuario (vigilar que no metan nada raro, inyecciones, etc.)

    Incluido

    - FAQ

    No se a que te refieres

    - Soporte/tickets

    No conozco si existe un bundle de esto.

    - Mantenimiento periódico / copia de seguridad

    ¿Esto no es tarea del framework no?

    - URLs limpias

    Incluido




    Desventaja, curva de aprendizaje mucho mayor que otros, pero las ventajas son enormes.


    Saludos.
    •  
      CommentAuthorPing
    • CommentTimeJun 3rd 2012
     # 3
    Ahhh y como colofón, estan desarrollando un cms, que funcionará con symfony.

    Tambien los desarrolladores de Drupal incluirán gran parte del core de symfony en Drupal 8.
    •  
      CommentAuthorignatius
    • CommentTimeJun 3rd 2012
     # 4
    Ping muchas gracias :cataa:

    Lo cierto es que empecé a leer sobre Symfony pero... como bien dices su curva de aprendizaje me echó un poco para atrás. Creo que me viene algo grande. Aunque la información que me das sobe los bundles es muy útil; voy a ver si leo un poco al respecto...

    Alguna otra idea de alguien más? :typeo:
    •  
      CommentAuthorAntonio
    • CommentTimeJun 4th 2012
     # 5
    Ignatius, lo que pides, es una opción ideal para desarrollar unos cuantos proyectos, pero creo que los frameworks tipo symfony, zend, etc... están hechos para ser globales, y al final cada uno de nosotros tenemos unos gustos, unas formas de programar, y una forma de montárnoslo en la cabeza.

    Personalmente (aunque codeigniter me parece que está bastante bien) prefiero una cosa propia, ya que defines la lógica tú mismo y el control es mucho mayor, además de sacarle al final mucho mejor rendimiento.

    Creo que es una buena opción "perder" el tiempo en desarrollar algo propio que permita lo que necesites, algo muy modular y simplificado. Para proyectos muy muy grandes tampoco se necesita un gran framework, solamente facilita el trabajo, pero al final se pierde el mimo tiempo que se ahorra en investigar y entender la lógica que debe seguir.

    Desde mi punto de vista una opción ideal es programar algo sencillo y según se van desarrollando proyectos, los módulos que se van creando añadirlo al framework (reutilización del código propio). Creo que debe ser un sistema multicapa, para tener en realidad varios frameworks, el ultra simple, el moderado y el completo.

    Creo que un framework simple para proyectos rápidos que no necesiten muchas funciones de usuario crearía una capa tipo:

    rutas (definiéndolas para llamar a la función o clase correspondiente).
    template (para gestionar las plantillas de forma interna - aquí se puede usar uno de los muchos motores que hay como twig o para mi mejor (más simple) raintpl ).
    framework css (para que todas las plantillas sigan la misma lógica e incluya los js básicos como jquery, rightjs o similar y css con definiciones standard como botones, formularios, paginación, pestañas, etc... como bootstrap, skeleton, amazium,...Con los tiempos que corren aquí es importante que sean válidos para medios más pequeños como móviles)
    bases de datos (Algún orm, que los hay muy buenos y ligeros, como redbean o en otro caso una capa de uso sobre pdo -imaginando que usas php :)-)
    gestión de config (leer fichero de congiuración de db si la hay y autocargar las configuraciones de la base de datos en una tabla estandar tipo key-value así como directorios en los que está estructurado)
    definiciones de error (404, 500, 501, 502...)
    consola de log (si te apetece :D)
    htaccess básico (o para lighty o para nginx con redirección de todo a un index y que las rutas las defina el php)

    Con esto tienes creado el esqueleto básico para cualquier proyecto sencillo y no hay demasiado que programar.

    A mi me funciona bastante bien este modelo. Cuando haces un módulo que cargues con alguna función para ello en el básico, algo como helper() (así cargas cualquier módulo o librería externa), por ejemplo para login de usuarios, ya te sirve para todos los demás proyectos.

    Me imagino que no es la respuesta que pedías, :tongue:.

    Existen unos cuantos frameworks bastante simples y fácilmente aplicables. Personalmente me gusta bastante limonadePHP, Silex (hermano pequeño de symfony) y F3, aunque al final, como te ocurrirá a tí, o le faltan cosas, o las hace de una forma que no me convence o le sobran un porrón de cosas.
    •  
      CommentAuthorPing
    • CommentTimeJun 4th 2012
     # 6
    Lo siento Antonio Villamarin pero soy pro-framework (o muy vago, veámoslo de las dos formas :meparto:)


    Ignatius, lo que pides, es una opción ideal para desarrollar unos cuantos proyectos, pero creo que los frameworks tipo symfony, zend, etc... están hechos para ser globales, y al final cada uno de nosotros tenemos unos gustos, unas formas de programar, y una forma de montárnoslo en la cabeza.


    Que estean hechos para ser globales no es malo, todo lo contrario, te vale para cualquier solución.


    Personalmente (aunque codeigniter me parece que está bastante bien) prefiero una cosa propia, ya que defines la lógica tú mismo y el control es mucho mayor, además de sacarle al final mucho mejor rendimiento.


    Discrepo, muchas veces te lleva a hacer cosas inútiles, reinverntar cosas que ya están hechas, tener que actualizarlas, seguir patrones que no son los adecuados y a la hora del mantenimiento de la web las pasas putas.


    ya que defines la lógica tú mismo y el control es mucho mayor, además de sacarle al final mucho mejor rendimiento.


    Aí también creo que no, cuando hablamos de rendimiento, pero rendimiento a buenos niveles, he visto que lo tuyo no funciona, razón. He tenido una programación propia, ha funcionado perfectamente, hasta que he querido meter ESI para cachear partes de código, es realmente complicado y con un framework que lo automatiza no tienes que hacer nada. Además que si actualizan ESI a otra versión tendrás que tu a mano hacerlo, de la otra forma no. Esto sirver igual para NOSQL, cacheadores de consultas, etc.

    Desde mi punto de vista una opción ideal es programar algo sencillo y según se van desarrollando proyectos, los módulos que se van creando añadirlo al framework (reutilización del código propio). Creo que debe ser un sistema multicapa, para tener en realidad varios frameworks, el ultra simple, el moderado y el completo.


    Y así tener que mantener tres frameworks, no nos olvidemos de las actualizaciones y modificaciones, son pesadas y si queremos hacer algo bueno, hay que hacer test, comprobaciones y errores de seguridad, mucho trabajo, que te pueden dan ya hecho los frameworks.
    •  
      CommentAuthorJavi
    • CommentTimeJun 4th 2012
     # 7
    La reutilización de código es válida para frameworks... yo tengo las librerías creadas para los usuarios y tal, si te lo documentas un poco para luego crear las vistas y controladores (uso CI) es muy, pero que muy rápido.

    Y me gusta tener una base sólida, validación de formularios, el modelo de abstracción de datos... para mi es muy cómodo. Una vez lo tienes por la mano, pim pam tienes montado un sistema chulo.:matu:
    •  
      CommentAuthorWakka
    • CommentTimeJun 4th 2012
     # 8
    El problema de los framework supongo que será el aprendizaje, digo supongo porque las veces que me he ido a poner ello, me ha dado pereza hasta empezar. CodeIgniter, CakePHP, Symfony, ... demasiados entre los que elegir.

    No solo por el aprendizaje de uno, sino tampoco saber cual elegir, equivocarme y comenzar a aprender a usarlo para nada.

    No se si habrá más posibilidades de hackeo porque la base es conocida. Aunque también es posible que sean más robustos que un desarrollo propio.Ofreces o buscas trabajo como redactor freelance?|Fotografías
    •  
      CommentAuthorAntonio
    • CommentTimeJun 4th 2012 editado
     # 9
    Posted By: PingLo siento Antonio Villamarin pero soy pro-framework


    Yo no soy anti-framework :smile:. Me parece que son muy útiles, están muy bien muchos de ellos y se pueden adecuar a prácticamente cualquier cosa.

    Lo que explicar es lo que en mi caso concreto uso y (según entiendo lo que pide Ignatius) qué usamos nosotros, para ver qué le compensa más de cara al futuro.

    Posted By: PingQue estean hechos para ser globales no es malo, todo lo contrario, te vale para cualquier solución.


    Ser globales es válido para muchas cosas, cierto, pero cuando uno esta programando una aplicación, muy probablemente o sobran demasiadas cosas, o le faltan. Es el mismo problema que existe por ejemplo con las hojas de cálculo o los tratamientos de texto. El hecho de que quieran llegar a la mayor cantidad de público posible hace que tengan una cantidad de fórmulas y herramientas inmensas, pero cuando se trata de escribir una carta o un simple documento de texto se trata de monstruos.

    Es cierto que cuando es una aplicación que se ejecuta en un escritorio y el equipo va holgado no hay problema, pero cuando se trata de internet y servidores al final los frameworks ejecutan una cantidad de código elevadísima respeto a los proyectos finales, al menos muchos de ellos.

    Wordpress es otro buen ejemplo. Tiene una estructura interna muy bien hecha, crear plugins y themes es muy sencillo. Pero si lo que quieres es tener una página de anuncios clasificados, por ejemplo, ejecutas un montón de código inútil para esa tarea, y sobrecargas el hosting/servidor con facilidad. Muchas peticiones a la MySQL, sistemas de cacheo complejos y pesados para optimizarlo, etc... y todo por ejecutar codigo de más. Como dato, una petición de wordpress interpreta al menos 500k de código aun cuando caches con apc (por ejemplo) y las peticiones mysql con memcached. Eso multiplicado por 1000 visitas al día es mucho código para no usarlo. Evidentemente esto lo digo pensando en hacer algo para lo que no está hecho wordpress. Que quede constancia que yo mismo uso wordpress muchas veces :dumb:

    Posted By: Ping

    Personalmente (aunque codeigniter me parece que está bastante bien) prefiero una cosa propia, ya que defines la lógica tú mismo y el control es mucho mayor, además de sacarle al final mucho mejor rendimiento.


    Discrepo, muchas veces te lleva a hacer cosas inútiles, reinverntar cosas que ya están hechas, tener que actualizarlas, seguir patrones que no son los adecuados y a la hora del mantenimiento de la web las pasas putas.


    No digo que haya que reinventar la rueda, pero seguro que uno se mueve mejor con su propia lógica que con una implantada de forma artificial. Si hay cosas que están hechas, trozos de código pequeño especialmente, o librerias, creo que hay que usarlas. De hecho me parece una gran idea usar motores de plantillas, orms, etc... que ya estén hechos, solo digo que a mí me gusta más ensamblarlo a mi manera, porque luego lo controlo mucho mejor.

    Posted By: Ping

    ya que defines la lógica tú mismo y el control es mucho mayor, además de sacarle al final mucho mejor rendimiento.


    Aí también creo que no, cuando hablamos de rendimiento, pero rendimiento a buenos niveles, he visto que lo tuyo no funciona, razón. He tenido una programación propia, ha funcionado perfectamente, hasta que he querido meter ESI para cachear partes de código, es realmente complicado y con un framework que lo automatiza no tienes que hacer nada. Además que si actualizan ESI a otra versión tendrás que tu a mano hacerlo, de la otra forma no. Esto sirver igual para NOSQL, cacheadores de consultas, etc.


    Creo que si uno sigue una buena estructura a la hora de definir su propio grupo de librerías no es tan dificil actualizar algo, ya que se conoce completamente el funcionamiento, lo que creo que compensa, al menos para mi, la implementación propia.

    Posted By: Ping
    Desde mi punto de vista una opción ideal es programar algo sencillo y según se van desarrollando proyectos, los módulos que se van creando añadirlo al framework (reutilización del código propio). Creo que debe ser un sistema multicapa, para tener en realidad varios frameworks, el ultra simple, el moderado y el completo.


    Y así tener que mantener tres frameworks, no nos olvidemos de las actualizaciones y modificaciones, son pesadas y si queremos hacer algo bueno, hay que hacer test, comprobaciones y errores de seguridad, mucho trabajo, que te pueden dan ya hecho los frameworks.


    Con los tres frameworks (que eran a modo de ejemplo) me refería a tener uno base, y solamente uno, con unos cuantos módulos que añado según sea el proyecto, ya que no es lo mismo montar un proyecto de anuncios clasificados, que un sistema de presupuestos en línea o una web de ofertas y cupones.

    Lo que veo muy importante en un framework propio es que gestione bien las urls (dirigido a controladores), templates y dbs, y luego ejecutar lo más automatizado posible configs.

    El que haya una comunidad detrás de un framework es muy bueno, desde luego :contrato:

    Tengo que decir, que probablemente no me convencen mucho frameworks como symphony porque no soy muy fan, primero de la POO creo que se usa demasiado, más de lo que se necesita, y segundo porque hace ya un tiempo lejano que deje de estudiar oficialmente y allí ahorrar un kb era todo un logro :dumb:
    •  
      CommentAuthorignatius
    • CommentTimeJun 4th 2012
     # 10
    Apasionante... Me pierdo un poco con algunas partes del debate, pero os agradezco mucho los planteamientos.

    Tampoco quería convertir esto en una discusión framework si / framework no. Creo que el que más y el que menos conoce o intuye buena parte de las ventajas o inconvenientes de trabajar con los frameworks... Lo que me interesaba sobre todo es saber cómo lo hacíais vosotros ( :tiko: ) y creo que en eso sí que nos hemos ido adentrando.

    A mí lo que me extraña es que igual que han surgido los frameworks, módulos, bundles, plugins, snipets, helpers y no sé cuántas piezas más del mecano que permiten construir un buen juguete, no haya surgido (al menos en los frameworks de perfil más bajo como CI) un empaquetado todo en uno que permita partir desde el minuto cero con los componentes básicos y comunes al 85% de cualquier sitio/app web. Quizás sea una idea contradictoria; sé que la filosofía es que tú te montes lo que necesites pero... :ildivo:

    Precisamente hablando hoy con un compañero sobre este tema me comentaba que el últimamente ha pensado en tomar Hero Framework (un cms sobre CodeIgniter) como punto de partida porque le da gestión de usuarios (miembros y administradores) blogs, artículos, páginas, templates... y una buena parte de las cosas que os comentaba en el primer post; aunque de momento está haciendo pruebas y conociéndolo a ver si es viable.
    •  
      CommentAuthorPichuco
    • CommentTimeJun 5th 2012
     # 11
    Hola ignatius, yo desde mi basica programacion te recomendaria wordpress como framework, tiene todo lo incluido facil de templatear facil de agregar, gran parte de la vida esta solucionada, con custom fileds y metadata podes hacer practicamente cualquier cosa, con paginas personalizadas tambien, tenes todo, ojo esto lo digo yo desde mi experencia de no usar framework aun, ya que me gustaria ponerme a aprender y ver que sale pero de momento ya hize desde sitios ecommerce, hasta sitios de preguntas y respuesta, es solo cuestion de adaptar y lo mejor solo te dedicas al template y a la funcionalidad que la web requiera para su uso especifico, obvio si la envergadura de mi proyecto seria importante lo pensaria y estudiaria bien, me refiero a grande por la escalabilidad que el mismo podria llegar a alcanzar. Creo que si me tendria que elegir un framework elegiria zend por sobre todo me da buena espina eso de que ellos son los papas de php
    •  
      CommentAuthorignatius
    • CommentTimeJun 6th 2012
     # 12
    Wordpress tiene la ventaja de que es archiconocido y está hipertempletizado (vaya palabra) pero... cada vez que intento hacer algo que no sea un blog tengo la sensación de estar cruzando el atlántico con una carabela: es posible que llegue a mi destino pero... ¡qué lío! Por no hablar de administrar contenidos luego basados en custom fields dentro de posts: no es una solución limpia.

    Mirad esto, tiene buena pinta:

    http://cibonfire.com/

    Es un buen punto de partida; no contempla la parte de CMS pero sí que da un marco bastante amplio... :typeo: