¿Son necesarios los frameworks en PHP? [cerrado]

9

¿Son realmente necesarios los frameworks en PHP?

¿Cuáles son las ventajas y desventajas de usar uno?

Tayyab Gulsher Vohra
fuente
2
Recientemente me encontré con esta publicación SO que parece bastante perspicaz con respecto al uso de PHP sin un marco stackoverflow.com/questions/3655145/…
Matt Molnar

Respuestas:

17

No. Pero son agradables.

Pros : Ahorra tiempo al no tener que reconstruir el código usted mismo. Use la miríada de características, funciones y estructuras de datos que construyó otra persona que se aplican a su proyecto.

Contras : No haber creado el código usted mismo podría ser una pérdida en un mejor nivel de comprensión sobre la base de su proyecto.

Tim
fuente
1
pero el problema es que día a día hay muchos marcos que no sé cuál usar
Tayyab Gulsher Vohra
44
@Tayyab ¡Tienes que usarlos todos!
Arnis Lapsa
1
Elegir un marco es para que usted decida, en función de las necesidades de su aplicación y su estilo de codificación. También pregúntese, ¿necesita un marco para ejecutar su propia aplicación, o un CMS (Joomla, Drupal, etc.)?
Darren Newton el
2
Tienes que tener cuidado con las "incógnitas desconocidas". Si no usa un marco, el riesgo de olvidar o no saber sobre algunas cosas que los marcos resuelven es grande. Por ejemplo, ¿está tratando correctamente con la prevención de ataques CSRF? Su aplicación funcionará sin tal prevención, pero será hackeada fácilmente. Elegir un marco principal (cualquiera de ellos) significa que se beneficiará de todas las cosas con las que las aplicaciones web tienen que preocuparse, incluso si aún no lo ha aprendido.
Joeri Sebrechts
9

Los marcos de aplicaciones web son tan buenos como su experiencia con ellos.

Cada marco tiene una curva de aprendizaje, hasta que superes esa curva, probablemente terminarás haciendo cosas tan negativas que negarás todos los beneficios de usar un marco. Su aplicación será innecesariamente lenta de desarrollar, el código será difícil de seguir y todo se romperá cuando se lance una nueva versión del marco. Recomendaría no intentar usar un marco desconocido (o cualquier tecnología desconocida) para proyectos con una fecha límite ajustada.

¿Cómo se mejora en la utilización de marcos?

Tendrás que construir un puñado de aplicaciones horribles e iterar. Eventualmente descubrirá las peculiaridades, y el uso de un marco le permitirá un tiempo de desarrollo más corto y un código mejor organizado.

¿Deberías usar un framework PHP?

Todos los que codifican suficiente PHP finalmente usan un marco. La pregunta es, ¿utilizará su propio marco o uno desarrollado por un tercero? En mi experiencia, es probable que nunca desarrolle su propio marco que coincida con la solidez y la calidad de un marco de terceros. Dicho esto, desarrollar su propio marco parece ser un derecho de paso en la comunidad PHP, por lo tanto, no me deje desanimarlo de escribir su propia clase de abstracción de base de datos.

Aquí hay un gráfico útil:

ingrese la descripción de la imagen aquí

Jake McGraw
fuente
7

Según Rasmus Lerdorf , no necesita ningún marco adicional, ya que PHP es en sí mismo un marco. http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html

vartec
fuente
bueno chicos, soy un gran fanático y estoy tratando de escribir código, soy nuevo y quiero ser un desarrollador principal de php, así que por favor
sugiérenme. Tayyab Gulsher Vohra
3
Ese artículo es de 2006 y está vergonzosamente desactualizado.
Jonathan Rich
1
@JonathanRich: ese artículo podría incluso estar desactualizado, ¡pero sigue siendo vergonzosamente interesante!
4

Bueno, realmente depende del tamaño de su proyecto. Una página de inicio sin base de datos y no más de 10 páginas, un marco será demasiado, principalmente porque los marcos siempre necesitan mucha configuración y personalización en la mayoría de los casos, para satisfacer necesidades específicas. Y en algunas situaciones, podrían ser un poco más lentos que varias páginas incluidas en un archivo (piense en todo lo que el marco necesita cargar para usar sus funciones).

Ahora, si está planeando un sitio de tamaño medio / grande, con interacciones de base de datos, servicios web, etc., necesitará un marco para ayudarlo a interactuar con diferentes tecnologías y organizar su código de una manera que cuando las cosas se rompan, tendrá la habilidad para detectarlo y repararlo rápidamente. Además, si piensa en los clientes, siempre están cambiando de opinión sobre el software, por lo que si el cliente necesita modificar o agregar una nueva característica, no debería tener que revisar todo su código y pensar cómo conecto esta nueva característica Este sphagetti.

Hay muchos otros pros y contras, pero estos son los primeros que pasaron por mi mente.

Editar: uso el marco de Symfony en las bases diarias y también trabajé con php para la universidad (tuve algunos cursos sobre desarrollo web que no me permitieron usar ningún marco), por lo que la mayor parte de esto proviene de esa experiencia.

Guiman
fuente
1
Bueno, yo soy un principiante en php y no he desarrollar cualquier cosa todavía grande y estoy a confundir lo que debe usar y que yo debería ir para realmente estoy totalmente en blanco
Tayyab Gulsher Vohra
El primer paso sería no usarlos, aprender las tecnologías y cómo funcionan (php, framework, js, css, etc.), luego, una vez que haya entendido la base de la programación php, use un marco como Zend o Symfony o CakePHP para aprender cómo impulsar sus aplicaciones
guiman
2

¿Estás bromeando, verdad?

La necesidad depende del uso. Las computadoras no son necesarias para la humanidad, ni los automóviles, etc.

En cuanto a ventajas / desventajas, ¡cada una es propia!

Me gustaría mostrar un código de ejemplo en mi propio marco:

class Product extends DatabaseRow {
    public $name='';
    public $price=0.0;
    public $images=array();
    public $description='';
    public table(){
        return 'products';
    }
}

$p=new Product();
$p->name='Bread';
$p->price=0.5;
$p->images=array('loaf1.jpg','bakery.jpg');
$p->description='Our premium diet bread.';
$p->save();

¿Ves lo que hice ahí? Esa clase sirve como modelo para una tienda. ¿Qué es tan especial aparte de OO? Si la tabla, o alguna columna no existe, se crea dinámicamente. 0 instalar scripts. Por supuesto, esta es una característica específica en mi marco. Pero se entiende la idea.

cristiano
fuente
Quiero decirles algo, chicos, en realidad estoy usando 2 frameworks, uno es codeigniter y el otro es yii y quiero convertirme en un desarrollador principal, pero mis conceptos de OOP no son tan buenos, la verdad es que.
Tayyab Gulsher Vohra
¿Cómo diferenciar entre una declaración 'ACTUALIZAR' y 'INSERTAR' en el método $ p-> save ()?
Srisa
@Srisa - No configuré una identificación. Para hacer una ACTUALIZACIÓN, necesito: $p=new Product($the_id); $p->load();La load()combinación de una fila es una en lugar de sobrescribir toda la fila.
Christian
2

No todas las aplicaciones requieren un marco, pero la mayoría de las consiguientes sí.

Las ventajas son:

  • No se repita : cualquier aplicación nueva tendrá funcionalidad en común con muchas aplicaciones existentes. Tiene sentido evitar repetirse. Un marco incluye la funcionalidad que necesitará para la mayoría de las aplicaciones. En consecuencia, ahorrará tiempo (y dinero).
  • No te agobies : el desarrollo de software en general puede ser muy doloroso. Tiene sentido automatizar las cosas mundanas. Un marco se ocupa de la fontanería, por lo que puede concentrarse en ser profundamente creativo. En consecuencia, ahorrará esfuerzo (y dinero).

Las desventajas son:

  • A nuestra manera o de ninguna manera : es posible que tenga que seguir las rígidas convenciones del marco, lo que podría contravenir sus creencias dogmáticas sobre cómo deben hacerse las cosas (y, en consecuencia, enfurecerlo).
  • Síndrome del marco adquirido : puede volverse demasiado dependiente de los marcos para realizar incluso las cosas más simples. Olvidarás cómo enrutar solicitudes, acceder a bases de datos, asignar objetos a consultas de bases de datos, etc., ya que el marco te ayuda con todo eso.

Con todo, es mejor usar uno.


fuente