2009-07-22 15 views
23

Sigo leyendo lo bueno que es codeigniter desde el punto de vista del desarrollo. Y estoy seguro de que usar el marco hará que el proceso de desarrollo sea más rápido. Pero la pregunta que me hago es: ¿habrá alguna diferencia en un marco creado individualmente, que satisfaga tus necesidades?¿CodeIgniter es una buena elección para aplicaciones grandes?

Es CI, a pesar de la pequeña huella anunciada, va a "empantanar" el sistema porque es básicamente un marco en un marco (el último refiriéndose a PHP como marco de C)? ¿Hay buenas maneras de distribuir la carga? ¿Hay alguna aplicación grande en la naturaleza que se haya realizado con CI?

Gracias Casper.

+12

"refiriéndose a PHP como marco de C" - Entonces debería referirse a mí como un marco para varios litros de agua ;-) – VolkerK

+3

¿qué quiere decir exactamente con "aplicaciones grandes"? –

+4

Si PHP "como marco de C" empantanado sistemas, PHP no sería una tecnología web viable. Sin embargo, puede escribir sitios web en C si lo desea. : D – zombat

Respuesta

22

Estoy ejecutando un sitio codeigniter con aproximadamente 11K archivos.

He modificado en gran medida la estructura básica de CodeIgniter para mis necesidades. Por ejemplo, tengo 3 aplicaciones con 3 controladores frontales que usan los mismos archivos del sistema. Estoy usando Smarty como mi motor de plantillas.Tengo aplicaciones web enriquecidas de PHP desarrolladas por jquery y prototype/Scriptaculous. Uso validación de formulario, autenticación, registro activo, correo electrónico, etc. etc.

Mi experiencia hasta ahora ha sido muy positiva.

Una vez que obtenga un motor de plantillas (real) como smarty conectado a Codeigniter, tendrá todo el poder que necesitará para sitios medianos a grandes.

Tienes que pensar en organizar tu sitio en grandes 'metagrupos' ya que la estructura 'controladora' en Codeigniter espera ese comportamiento. ('blogs', 'mercancía', 'foros', etc.)

CI es muy fácil agregar complementos para.

El marco simplifica una gran cantidad de basura que de otro modo tendrías que codificar a mano. Es rápido, simple y configurable.

Mi única gran queja con CI hasta ahora es que no es muy consciente de las múltiples aplicaciones. El diseño predeterminado supone que está ejecutando 1 aplicación. En mi caso, tengo una aplicación global con el archivo global que se puede extraer de todas las aplicaciones en ejecución. Sin embargo, esto podría resolverse de manera más elegante. Además, debe agregar un poco de pelusa extra para cambiar entre los controladores frontales.

Mi aspecto favorito de CI es fácil de registrar en una base de datos MySQL. Es absolutamente simple configurar una conexión de base de datos y obtener consultas de registros activas en ejecución.

Yo diría que es bastante fácil comenzar. Solo asegúrate de comparar precios y descubrir cómo conectar smarty a tu aplicación. PUEDES usar las 'vistas' predeterminadas de Codeigniter, pero en el momento en que necesites la lógica if/else en tus plantillas estás jodido.

Configuré un "plantillas" y un área de "contenido" en cada aplicación que puedo rellenar con plantillas inteligentes y contenido estático respectivamente. El resto lo puedo sacar de una conexión DB.

+4

Big CI user here. ¿Podría aclarar "en el momento en que necesita la lógica if/else en sus plantillas está jodido" por favor? ¿Quieres decir que es simplemente desordenado? Estoy de acuerdo con eso. – stef

+1

Sí, tengo la misma pregunta. Desordenado, sí; "jodido", no. – Smandoli

+3

No es para nada complicado evitar las llaves y utilizar la sintaxis de plantillas predeterminada de PHP, p. hola . Lo mismo aplica para todas las otras plantillas lógicas como for, foreach, etc. – TK123

20

Realmente esta es una pregunta que solo usted puede responder. Cuando habla de un "gran sistema", podría significar algo ampliamente utilizado (por páginas vistas/etc.), o algo que abarque un gran conjunto de reglas comerciales, pero que solo utilicen unas pocas personas. ¿La aplicación necesita ser rápida o puede equilibrarla en varios servidores?

Su comentario "PHP es un framework en C" está bastante fuera de control, IMO. No, PHP no es tan rápido como C. Pero es MUCHO mejor en el manejo de solicitudes web. PHP se usa en algunos de los sitios más grandes del mundo: Facebook se escribió originalmente en PHP. Yahoo usa PHP bastante. Por lo tanto, PHP es lo suficientemente rápido para casi cualquier persona, especialmente teniendo en cuenta que la base de datos casi siempre será su cuello de botella. Si sus aplicaciones PHP se están desacelerando, puede usar Memcache/load balancers/poner más servidores de aplicaciones en su red. Bastante fácil escalar el final PHP de las cosas.

Lo que puedo decir es una breve comparación con otros marcos. Utilicé CI en implementaciones limitadas, principalmente ayudando a otras personas, pero lo que he visto me gustó. Le da una ventaja de velocidad en tiempo de ejecución sobre algo como CakePHP, pero aumentará su tiempo de desarrollo (ya que la mayor fortaleza de Cake es su capacidad de desarrollarse e implementarse rápidamente). En lo que respecta a la velocidad, se siente bastante comparable a Zend o Symfony, que todavía es aproximadamente 5-7 veces más lento que simplemente escribir el PHP sin procesar.

Para resumir los diversos marcos (NB: mi opinión abajo):

  • CakePHP es ideal para un rápido desarrollo. Su rendimiento es el peor de los principales frameworks, aunque se supone que la versión 1.3 (¡próximamente!) Te liberará (no hay cambios en la API, solo están eliminando el soporte de PHP4) 25% de aumento de velocidad. Está enfocado en ActiveRecord, y es súper rápido para poner en marcha un sitio con todas las funciones (en serio, en serio desarrollo rápido/chorros de creación de prototipos).
  • Zend es el más utilizado. Tiene la mayor flexibilidad con sus módulos adicionales. Es súper rápido, aunque no particularmente ligero. Para un proyecto empresarial, me gustaría ir con este o symfony. Se siente como usar un buncha diferentes bibliotecas para mí. Y sus convenciones de nombres son un poco onerosas ...
  • Symfony - vea los comentarios de Zend. Aunque se supone que Symfony es incluso más empresarial.
  • CodeIgnitor es el nuevo chico caliente en el bloque. Está enfocado en mantenerse fuera de tu camino sin dejar de ser un "marco", es decir, una herramienta que te ayudará a hacer tu trabajo más rápido. Es rápido de ejecutar, pero un poco más lento de desarrollar.
+2

¿dónde está sacando todas estas métricas de rendimiento? Me encantaría verlos :) – codingbear

+0

Desde hace 6 meses. Creo que PMJ realizó algunas pruebas antes. http://paul-m-jones.com/blog/?p=238. El comentario sobre el aumento de velocidad de CakePHP 1.3 fue del anuncio de 1.3 de los chicos de Cake (http://debuggable.com/posts/Cake_3_interview_with_Nate_Abele:4a665a5e-5bfc-4e42-96ee-6d284834cda3) –

Cuestiones relacionadas