¿Es un gran error construir una aplicación web PHP comercial sin usar un marco?

Todas las respuestas a su pregunta son correctas. Solo voy a agregar mis dos centavos.

Una cosa que es muy importante cuando decide no utilizar un marco es “por qué”. Escucha tu voz interior y descubre cuál es la verdadera razón. ¿Por qué no vas a usar un marco? ¿Es porque es más difícil de aprender que solo aprender PHP? ¿Es porque crees que te están atando? ¿Es porque crees que te están dando demasiadas funciones? ¿Es porque aumentan el tiempo de carga de su aplicación?

Cuando encuentre la respuesta real a estas preguntas, puede tomar una decisión mucho más informada. Aquí están mis respuestas a las preguntas anteriores, en caso de que coincidan con una de las razones por las que no desea utilizar un marco.

  • ¿Es porque aprender un framework es más difícil que aprender PHP? Esto es natural, simplemente porque al aprender un marco, estás aprendiendo muchos otros conceptos. Le recomiendo que aprenda a usar marcos para aprender estos conceptos muy importantes. Aprender estos conceptos bien te ayudará a diseñar un código que sea fácil de leer y un placer de mantener, y confía en mí, necesitas aprender estos conceptos para ser un buen programador.
  • ¿Se debe a que los marcos lo están atando con sus convenciones (por ejemplo, haciendo que coloque controladores en su propia carpeta, modelos en otra carpeta, vistas en otro lugar, etc.)? Si ha estado programando con diferentes marcos y ha encontrado la estructura que funciona mejor para usted, excelente, continúe y elija una configuración que le permita configurar y anular estas carpetas. Sin embargo, tener estas estructuras en su lugar asegura que a los nuevos miembros de su equipo les resulte fácil integrarse y comenzarán a ser productivos muy pronto.
  • ¿Es porque los marcos te están dando demasiadas características? En ese caso, use un marco que le permita controlar sus características a través de paquetes de Composer, como Laravel y Symfony. Luego, elimine las funciones que no necesita. O comience en el otro extremo: vaya con un microframework como Silex o Slim, luego agregue funciones si es necesario.
  • ¿Es porque tiene miedo de que su aplicación tarde demasiado en cargarse? En ese caso, consiga un mecanismo de almacenamiento en caché, como Memcache o barniz.

Todo lo que digo es que si tiene la experiencia suficiente para hacer las cosas usted mismo, mezcle y combine según sea necesario. Si no lo está, elija un marco y deje que lo guíe y elimine el dolor de la toma de decisiones.

Gracias por el A2A!

No, no es. Desarrollo algunas aplicaciones web y cli muy grandes y no utilizo un solo Framework (completo) para este propósito.

¿Estoy loco? No, no lo soy Hay una pequeña herramienta ingeniosa llamada “Compositor”. Composer es una herramienta para la gestión de dependencias. Puede usarlo para integrar todos los diferentes tipos de componentes en su proyecto. Aunque a veces uso componentes que normalmente forman parte de un Framework más grande (por ejemplo, ZendFramework o Symfony), siempre uso los componentes que son más útiles para cada proyecto.

Un componente central que uso con frecuencia es PHP-DI. Este es el pegamento mágico, que hace que todos mis componentes se encuentren juntos. Lo mejor es: si evoluciona un nuevo componente, que es más adecuado para un trabajo, que un componente existente, generalmente puedo ir y reemplazarlo en un lugar central (di-config) o ir y reemplazar sus ocurrencias una por uno hasta que se cierre el negocio.

Entonces, para ser claros: no uso Frameworks; Yo configuro el mío. No hay un solo PHP Framework que sea realmente inspirador para mí.

Utiliza PHPDoc. Aprender patrones de diseño. Aprende a codificar limpio. Aprende Scala (esto te enseñará muchas cosas geniales). Nunca mezcle PHP y HTML a menos que esté en un contexto de plantilla. Y, como beneficio adicional, puede usar el analizador de código estático de PHPStorm para encontrar posibles problemas en su código (sí, funciona con un 95% de precisión como puede haber escrito una aplicación Java).

Si sigues estas reglas, puedes entender lo que te has perdido durante tanto tiempo cuando vienes de un Symfony- o ZendFramework-Background. Al menos lo hice …

Probablemente. Frameworks le brinda una gran cantidad de funcionalidades importantes que están listas para usar, por lo que debe escribir menos código usted mismo, que generalmente es idéntico de una aplicación a la siguiente. Además, los marcos lo alientan a escribir código bien estructurado, lo que tiende a hacerlo de mayor calidad y más fácil de mantener.

Ambos beneficios lo ayudan a tomar menos tiempo para escribir y mantener su solicitud. Al escribir una aplicación comercial, reducir el tiempo de desarrollo es importante para reducir el costo del proyecto y, por lo tanto, hacer que sea más fácil obtener ganancias.

Incluso si desarrolla este proyecto sin utilizar uno de los marcos disponibles, un buen programador refactorizará el código a clases reutilizables. Antes de que te des cuenta, has desarrollado un tipo de marco, aunque uno diseñado específicamente para tu aplicación.

No, no lo es si sabes lo que estás haciendo.

No comience a construirlo y haga todo desde cero a ciegas. Debería buscar marcos asombrosos como Laravel , CodeIgnitor, CakePHP, etc. (elegiría Laravel).

Si un marco tiene todo lo que necesita y no tiene ninguna razón para hacerlo todo desde cero, entonces vaya con el marco. Es una pérdida de tiempo hacer todo desde cero.

Sin embargo, si tiene confianza y tiene razones genuinas para hacer todo usted mismo, puede intentarlo sin un marco. Pero es probable que, para hacer todo bien, pueda terminar con otro tipo de marco (el suyo, por supuesto).

O será un código de espagueti …

Casi 2018

Implementar una aplicación PHP comercial sin usar un marco es una locura, buena suerte en su proyecto SIGUIENTE .

El 90% de los casos de uso requerirán WordPress o la API de WordPress para SaaS para PHP. El otro 10% de los casos usa NodeJS con accesorios PHP. Me resulta difícil relacionarme con cualquier otra respuesta. Beta podría ser técnicamente mejor que VHS, pero en un mundo VHS, si quieres las películas exitosas, querrás la tecnología más popular, no la mejor . WordPress DOMINA en términos de número de programadores [también conocido como el mercado laboral], fácil de implementar y, sí, seguridad, una vez que descubres no contratar programadores de $ 10 / hora justo después de la escuela secundaria. Si usar WordPress de alguna manera no se ajusta a su proyecto, probablemente no sea un proyecto PHP. Cosas como aplicaciones gráficamente intensas o muy asíncrono; pertenecen al nodo / Java / Ruby / C universo.

La mejor manera de implementar aplicaciones comerciales de back-end de WordPress es hacer un desarrollo basado en pruebas y un desarrollo basado en el comportamiento utilizando el módulo de WordPress para Codeception. Si realmente tiene un equipo de desarrollo de PHP, el uso de este método reducirá sus costos a largo plazo en aproximadamente un 40%.

Le dejaré este juicio a usted (no sé su caso de uso específico), sin embargo, es muy importante que intente usar la Administración de dependencias siempre que use dependencias externas. Debe asegurarse de extraer componentes extraños a través de una herramienta como Composer, para poder administrar las dependencias de manera efectiva.

Además de esto, debe asegurarse de que cuando carga componentes automáticamente utiliza un estándar de carga automática (por ejemplo, PSR-4). Del mismo modo, también vale la pena considerar un estándar de codificación (por ejemplo, PSR-1, PSR-2).

El Síndrome NIH (no inventado aquí) se refiere a un antipatrón basado en la idea errónea de que las cosas inventadas internamente son inherentemente mejores; Esto no siempre es cierto y ciertamente no es cierto cuando se trata de mecanismos relacionados con la criptografía (por ejemplo, inventar su propio mecanismo de hash de contraseña alrededor de MD5 es estúpido, use algo como PBKDF2 o BCrypt). El uso de un Administrador de dependencias le da la libertad de extraer componentes cuando los necesite de manera organizada, independientemente de si también incorpora un marco o no.

Depende de usted si usa un marco o no, pero lo que diré es que debe considerar atraer dependencias de terceros para diversas acciones a través de una herramienta como Composer.

No.

Pero es un gran error intentar reinventarlo todo.

Si conoce el alcance completo de la aplicación que se supone que debe construir, y puede, dentro de un margen de certeza razonable, evaluar las necesidades futuras de esta aplicación, puede crear fácilmente su propio marco a partir de paquetes populares en Packagist.

Por lo tanto, si no le gusta el sabor de la mayoría de los marcos grandes y no tiene ganas de subir la curva de aprendizaje, puede simplemente retroceder y armar el suyo, juntando solo los componentes que realmente necesita.

Lo que definitivamente no debe hacer es intentar recrear todos los componentes que tiene la intención de usar desde cero, pensando que sus necesidades son lo suficientemente específicas. Nunca lo son, y hay muchos paquetes adecuados por ahí que han sido probados por la comunidad.

Esto solo sería un error si no fuera un talento extremo en el desarrollo de aplicaciones web. Si no siente que tiene este talento extremo , hágase un favor y use uno de los grandes marcos que ya existen. Durante el tiempo que esté libre de desarrollar con los marcos, aprenda cómo funcionan y qué herramientas han incluido para que pueda imitar estas cosas en sus versiones en el futuro. Aprende cómo funcionan, por así decirlo. Siempre tendrá la oportunidad de crear su propio marco en el futuro, pero como dije a menos que su talento en el desarrollo de aplicaciones web sea extremo , no comience a construir aplicaciones web PHP comerciales sin un marco.

Muchas buenas respuestas. Solo quiero agregar:

– Los códigos se escriben una vez, se leen y cambian varias veces. ¿Por quién? Si siempre eres tú, entonces está bien. Pero incluso si lo crees ahora, la aplicación podría tener éxito. Necesitas contratar personas. Y tienes que entrenarlos para que entiendan tu marco. Pero no tendrá tiempo para entrenarlos porque la aplicación está creciendo muy rápido.

Es más fácil adquirir habilidades, por ejemplo, personas de Symfony, y podrían contribuir mucho más rápido, y no necesitan preguntarle tantos por qué y por qué. Por supuesto, no hay un marco para todos, pero consideraría seriamente algunos tipos diferentes.

No. No es un error, pero gastas mucho esfuerzo para

  1. Construya todas las características que tiene el marco de trabajo como llamada de base de datos, sistema de archivos
  2. Seguridad que puede integrarse en el marco
  3. Mantener un sitio complejo
  4. Extiende el sitio a medida que crece

Es una elección que tienes que hacer. Actualmente estoy trabajando en dos proyectos, uno de trabajo y otro personal que implican pasar a un marco. Ambos están usando Laravel. Lo estoy haciendo porque será más fácil de mantener, más rápido de construir y tendré menos problemas para extenderlos.

Se requerirá mucho trabajo para crear sus propias aplicaciones web empresariales desde cero. El framework php más conocido ofrece una buena funcionalidad para facilitar la parte de codificación, incluyendo agregar dependencias y libs usando composer. Por supuesto, si eres un php muy talentoso, la respuesta es no. Pero si estoy trabajando en ello en un equipo, elegiré otro estándar disponible que hará que mis aplicaciones sean más escalables.

¡NO! Antes de que existiera el Framework PHP.

Pero puedes responder esta pregunta. ¿Puedes caminar desde Glasgow a Edinburg? (solo algunas ciudades del Reino Unido)

¡La respuesta es obviamente un sí! Pero sería mejor simplemente aceptar la revolución. ¡Coge un autobús o toma un taxi!

Bueno, ahora puedes elegir caminar o tomar un autobús.

Usar un marco o no es completamente tu elección. El beneficio de usar el marco es

  1. Acelera el desarrollo porque el esqueleto ya está construido
  2. Facilita el desarrollo porque los protocolos de codificación están predefinidos
  3. Le permite seguir patrones de desarrollo estándar
  4. La comunidad / foro está siempre a disposición para obtener ayuda.
  5. Los IDE tienen soporte para marcos.

Gracias por el A2A.

Depende de la aplicación. Si la aplicación no se beneficiará del uso de un marco, entonces no use uno. Creo que la mayoría de las aplicaciones probablemente se beneficiarán del uso de un marco, pero solo usted conoce los requisitos de su aplicación y puedo ver dónde una aplicación podría ser lo suficientemente simple como para que un marco sea excesivo. He construido algunos de estos.

Para el trabajo profesional del cliente: es como tratar de fijar el concreto para los cimientos de un edificio, sin el molde.

Ya te han dado muchas respuestas razonables y no repetiré lo que todos han dicho. Lo que agregaré es que probablemente se trata más de elegir el marco más apropiado en lugar de deshacerse por completo de un marco. Realmente no tiene sentido construir todo desde cero.

Si no tienes los servicios de un equipo de desarrollo completo detrás de ti, diría que sí, es un gran error. Incluso si obtiene la aplicación del mantenimiento del suelo, lo mataría en un corto período de tiempo.