¿Cuándo necesito usar un marco? [cerrado]

15

Soy nuevo en programación web y en este momento estoy aprendiendo sobre PHP. Me gustaría saber cuándo necesito usar un marco PHP como CakePHP. ¿Qué cosas me ofrecen este y otros frameworks PHP similares? ¿Y es realmente importante utilizar un marco para ser profesional?

  • ¿Y puedo crear mi propio marco para proporcionar las características que me gustan?
Goma
fuente
3
Cuando comprenda lo que ofrece y pueda solucionarlo cuando sea necesario, use el marco [xyz]. Los marcos son herramientas destinadas a personas capacitadas que saben cómo usarlos y entienden las limitaciones de sus elecciones. No, bajo ninguna circunstancia aprenda un idioma estudiando un marco solo. Es como apagar deliberadamente los dedos de los pies o la visión periférica. Sugerencia, las sesiones se comportan de manera extraña dependiendo del marco PHP que use ... tenga cuidado :)
Tim Post

Respuestas:

10

Cuando esté a gusto con PHP, puede comenzar a usar un marco. Y siempre debes usarlos:

  1. Es mucho, mucho más rápido que volver a codificar todo
  2. Facilita las modificaciones, como cambiar bases de datos o cambiar vistas
  3. Trabajar con otras personas también será más fácil, ya que a menudo están acostumbrados al uso de marcos de patrones MVC

Puede crear su propio marco, pero definitivamente no lo recomendaría. Es complicado, ya hay muchos marcos buenos por ahí, y no es probable que encuentres una característica que falta. Además, a menudo proporcionan formas de agregarles sus propias características, sin tener que crear una completamente nueva.

Eco distante
fuente
2
+1 para Cuando esté a gusto con PHP, puede comenzar a usar un marco. Su punto 3) funciona bien solo si los marcos son muy similares. Añadiría "no cree un marco antes de haber usado algunos diferentes"
peterchen
8
Estoy totalmente en desacuerdo con la afirmación "siempre debes usarlos". No son adecuados para cada proyecto y, a menudo terminan haciendo modificaciones más difícil . Las utilidades son mucho más valiosas que los frameworks.
Nicole
+1 para @NickC, no podría estar más de acuerdo. Algunos marcos afirman ser dinámicos y fáciles de cambiar, pero luego llegas a un cierto punto y simplemente ... no puedes. Me he quejado mucho por ese tipo de cosas :)
Steve Hill
Estoy de acuerdo en que MVC es un terreno común muy bueno que permite a otras personas intervenir en su código con menos curva de aprendizaje cuando se usa correctamente. Pero MVC es la estrella brillante allí, el marco (o la falta del mismo) es solo la implementación.
Tim Post
Todo esto es teórico y no funciona en la práctica. Los frameworks PHP tienen más probabilidades de hacer que todas esas cosas sean más difíciles. La aplicación promedio escrita desde cero necesita entre quinientas y cinco mil líneas de código marco. Eso es aproximadamente el promedio de trabajo de una semana. Si es más que eso, probablemente estés escribiendo una biblioteca o creando una plataforma interna.
jgmjgm
9

Cree algunas páginas sin un marco ... esencialmente comenzará a escribir su propio marco por prueba y error. Después de hacer eso, muévase a un marco y disfrute de cuánto tiempo ahorra. Intentar construir su propio marco puede enseñarle algunas cosas y lo ayudará a apreciar los marcos que ya existen.

Cuando ingresé a PHP por primera vez, pensé que los frameworks eran una pérdida de tiempo complicada. Ahora, uso CodeIgniter incluso para proyectos simples. Se tarda aproximadamente 1 minuto en comenzar a funcionar. Ya tiene un montón de excelentes bibliotecas disponibles. Y, como se mencionó en un póster anterior, la mayoría de los marcos son extensibles, por lo que siempre puede agregar cualquier funcionalidad que desee.

TaylorOtwell
fuente
2
Pero, ¿cómo puedo asegurarme más adelante de que el código en el marco es exactamente como quiero? Quiero decir, cada programador tiene su propio estilo, ¿verdad? ¿Qué pasa con el marco!
Goma
1
@Goma ¿Qué pasa con el idioma? Todavía no he encontrado uno que haga todo como yo quiero. El marco simplemente agrega algo muy, muy similar (con suerte en un nivel de abstracción algo más alto). En serio, la codificación no se trata de "hacer que todo se vea / se comporte / sea exactamente como yo quiero". Se trata de crear algo que sea útil, el código es solo la responsabilidad con la que nos agobiamos porque los beneficios superan el costo de tener ese código en el primer lugar.
Christopher Creutzig
Y ahora @TaylorOtwell es el creador de Laravel ...
Hos Mercury
4

Como dijo Niphra , solo comience a usar un marco cuando pueda usar PHP sin un marco (es decir, acceder a la base de datos, enviar encabezados y contenido, procesamiento de cadenas, manipulación de datos, etc.). En cuanto a sus preguntas:

  • ¿Cuándo necesito usar un marco PHP como CakePHP? Cuando su proyecto crece más allá de unos pocos archivos PHP; en el momento en que comienza a separar fuertemente la lógica en elementos distintos y a la funcionalidad de modularización / intercambio (sesiones, etc.) es cuando debe usar un marco.

  • ¿Qué cosas me ofrecen este y otros frameworks PHP similares? Abstracción; en lugar de interactuar directamente con la base de datos, puede usar un mapeo relacional de objetos (ORM) para administrar la estructura y las relaciones entre sus datos en la base de datos. La mayoría del marco en muchos idiomas proporciona ORM para facilitar la interacción con la capa de base de datos de su aplicación. Del mismo modo, los marcos a menudo separan las capas de respuesta a la interacción del usuario. La separación más común es el paradigma Model View Controller (MVC), que, para ser breve, abstrae la lógica de la base de datos en el Modelo (una interfaz con el ORM, en muchos casos), procesa solicitudes e interactúa con los Modelos en el Controlador, y Representación del HTML / PDF / imagen / etc. en la vista. Los marcos a menudo proporcionan otras herramientas, como el enrutamiento (para permitir el procesamiento complejo del URI de la solicitud (por ejemplo, mapeo de la solicitud "http://example.com/users/1 "para los usuarios del controlador, que luego busca el modelo de usuario con el ID de 1) y una abstracción de sesiones y otras estructuras básicas.

  • ¿Y es realmente importante utilizar un marco para ser profesional? No necesariamente; los marcos hacen la vida más fácil; pero no tienes que usar uno para ser profesional. Los marcos proporcionan una práctica abstracción y estandarización, pero no son un requisito en la mayoría de los casos.

puñal
fuente
3

Después de leer algunas de las respuestas, me gustaría decir primero que a menudo no tienes muchas opciones sobre qué marco vas a usar o si vas a usar una o no (como profesional). No quiero intimidarlo, pero necesitará desarrollar una comprensión suficiente de PHP para permitir pasar de un marco a otro y usar más de un marco a la vez.

¿Cuándo necesito usar un framework PHP como CakePHP?

No hay una respuesta universal a esto. Como profesional, tendrá la tarea de resolver problemas específicos y este será el factor decisivo para cuándo y qué es de cada proyecto, especialmente si un cliente tiene una demanda específica. Pero, en términos generales, siempre usará algún tipo de marco con PHP, a menos que esté modificando o extendiendo una aplicación preexistente que tenga su propio marco (como Wordpress o PHPBB).

¿Qué cosas me ofrecen este y otros frameworks PHP similares?

Como dijo dirk, ofrecen abstracción. Lo que esto significa es que toman procedimientos comunes de varios pasos e intentan hacerlos lo más simples y simplificados posible. En resumen, intentan presentar soluciones de solo agregar agua para tareas comunes.

¿Y es realmente importante utilizar un marco para ser profesional?

En términos generales, no, no es importante utilizar un marco para ser un profesional. Pero de manera realista, no tendrá una gran carrera si no está familiarizado con al menos un par de marcos comunes. PHP sin marco es como C ++ sin una biblioteca estándar. No lo necesita, y en realidad puede hacer más sin él, ya que usará directamente la funcionalidad de bloque de construcción de nivel inferior del lenguaje, pero le llevará mucho más tiempo hacer lo mismo.

¿Y puedo crear mi propio marco para proporcionar las características que me gustan?

Si. De hecho, es probable que termines haciéndolo incluso sin querer. Con esto no me refiero a un marco de trabajo general expansivo, sino más bien a una bolsa de herramientas de funciones básicas y scripts que realizan tareas que no son lo suficientemente comunes o genéricas como para ser manejadas por el marco promedio. El mío está compuesto básicamente por varios sistemas de archivos, manejo de procesos y rex-ex tid-bits con algunas utilidades diferentes de rizo y flujo / socket.

JSON
fuente
1

Común de una persona que pasó años descifrando mis propias formas de hablar con una base de datos y hablar con API en línea y solo ahora estoy comenzando a usar marcos, úselos cuando al menos comprenda lo que están haciendo, si es posible.

No salte inmediatamente a RedBean la primera vez que trabaje con una base de datos, primero trabaje con la base de datos manualmente. De esta manera, tiene una comprensión profunda de lo que realmente está buscando y haciendo a la base de datos, lo que realmente puede ayudar con la escalabilidad. También puede hacer su propia solución cuando el marco que está utilizando no hace algo que deba hacer.

Sin embargo, una vez que comprenda lo que está sucediendo, ¡use un marco! Esto hace las cosas mucho más fáciles. La locura con el almacenamiento de una consulta a continuación un bucle a través de los resultados con mysql_fetch_assoctodo se ha ido, reducida a una sola llamada: $book = R::load( "book", $id ). Será mucho más productivo y podrá corregir errores futuros o agregar funciones futuras mucho más fácilmente.

TheLQ
fuente
1

Use un marco cuando conozca las tecnologías subyacentes lo suficientemente bien como para saber qué hace el marco por usted y por qué eso es bueno (o malo).

Un marco es una especie de metaherramienta, que le permite trabajar con sus herramientas (idioma, base de datos) un poco más rápido sin tener que preocuparse por algunos de los detalles de lo que está haciendo, lo cual es bueno si realmente conoce su herramientas.

Lo que NO desea que suceda es que aprenda el marco en lugar de las herramientas, y se canalice hacia una determinada forma de hacer las cosas, y termine realmente sin dominar los lenguajes y conceptos subyacentes: debería ser un herramienta, no una muleta.

Eli
fuente
1

Cuando te encuentres haciendo lo mismo una y otra vez, mira a tu alrededor y ve si hay un marco que haga las mismas cosas redundantes que hubieras terminado haciendo por tu cuenta. No solo use un marco debido a la exageración. Personalmente, me gusta CodeIgniter y el "marco MVC PHP sin marco" de Rasmus Lerdorf http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html

programador
fuente
He escrito varios 'marcos sin marco' para aliviar la molestia de agregar nuevas funciones a sitios en su mayoría estáticos (y enormes) que simplemente no se pueden portar fácilmente a ningún tipo de sistema de administración / publicación, por lo que tienen sus usos. Pero no lanzaría el mío para un proyecto nuevo (solo usaría CI si se solicitara un marco).
Tim Post
@Tim Post Normalmente, nunca hay una respuesta en blanco y negro a esta pregunta. Todo depende del proyecto en cuestión, la publicación original no dio detalles sobre un proyecto en particular.
programador
1
Parece que obtuve un voto negativo de un fanático del marco, ¡bien!
programador
No era yo :) Alguien podría haber estado reaccionando al enlace que publicaste sin realmente entrar en detalles al respecto.
Tim Post
@Tim Post Heh! Es por eso que me aseguré de separar ambos comentarios. : D
programador
-1

Recomiendo pensar cuidadosamente por qué usaría el framework x, y o z. Cada marco no solo proporciona funcionalidad, que no tiene que implementar usted mismo, sino también una forma de pensar. Solo mira Spring, JEE, Rails o Django. Cuatro marcos que proporcionan suficiente para pisotear una aplicación web en poco tiempo.

Pero los cuatro promueven su propia forma de pensar sobre cómo deberían construirse las aplicaciones web. Y si eso no se ajusta a sus necesidades o no coincide con su sabor, tendrá dificultades para llevar las cosas más allá.

Esta ha sido una comparación muy radical, pero quizás construir una pequeña biblioteca se adapte mejor a sus necesidades. Pero conocer los marcos definitivamente lo ayudará a trabajar en equipos más grandes o a encontrar nuevos trabajos, ya que eso demuestra que está interesado en el desarrollo de software en general.

Florian Salihovic
fuente
-2

Los marcos siempre son buenos para usar desde el principio. Promueve la usabilidad del código, una mejor legibilidad y ahorra un poco de tiempo de desarrollo.

No tengo mucha experiencia con PHP, pero recomendaría cualquier uso de framework.

Pierre Pretorius
fuente
¿Por qué los votos negativos?
Pierre Pretorius