En los primeros días de la web dinámica, escribir una aplicación web se veía muy diferente a lo que hace hoy. Los desarrolladores fueron responsables de escribir el código no solo para la lógica comercial única de nuestras aplicaciones, sino también de cada uno de los componentes que son tan comunes en todos los sitios: autenticación de usuarios, validación de entrada, acceso a la base de datos, plantillas y más.
Hoy, los programadores tienen docenas de marcos de desarrollo de aplicaciones y miles de componentes y bibliotecas de fácil acceso. Es un estribillo común entre los programadores que, para cuando aprende un marco, tres marcos más nuevos (y supuestamente mejores) han aparecido con la intención de reemplazarlo.
"El hecho de que esté allí" podría ser una justificación válida para escalar una montaña, pero hay mejores razones para elegir usar un marco específico, o para usar un marco en absoluto. Vale la pena hacer la pregunta: ¿Por qué los marcos?? Más específicamente, por qué Laravel?
Por qué usar un marco?
Es fácil ver por qué es beneficioso usar los componentes individuales o paquetes que están disponibles para los desarrolladores de PHP. Con los paquetes, alguien más es responsable de desarrollar y mantener un código aislado que tenga un trabajo bien definido, y en teoría esa persona tiene una comprensión más profunda de este componente único de lo que tiene tiempo para tener.
Frameworks como Laravel-y Symfony, Silex, Lumen y Slim-Preackage Una colección de componentes de terceros junto con "pegamento" personalizado como archivos de configuración, proveedores de servicios, estructuras de directorio prescritas y arranque de aplicación. Entonces, el beneficio de usar un marco en general es que alguien ha tomado decisiones no solo sobre componentes individuales para usted, sino también sobre Cómo deben encajar esos componentes.
"Lo construiré yo mismo"
Supongamos que comienza una nueva aplicación web sin el beneficio de un marco. Donde empiezas? Bueno, probablemente debería enrutar las solicitudes HTTP, por lo que ahora debe evaluar todas las bibliotecas de solicitudes y respuesta HTTP disponibles y elegir una.
Entonces un enrutador. Ah, y probablemente necesitarás configurar alguna forma de archivo de configuración de rutas. Qué sintaxis Si se usa? A donde debe ir? Qué pasa controladores? ¿Dónde viven y cómo se cargan??
Bueno, probablemente Necesita una inyección de dependencia contenedor para resolver los controladores y sus dependencias, pero cuál?
Además, ¿qué pasa si se toma el tiempo para responder todas esas preguntas y crear con éxito su aplicación? ¿Cuál es el impacto en el próximo desarrollador??
¿Qué pasa cuando tiene cuatro aplicaciones basadas en el marco personalizado, o una docena, y debe recordar dónde viven los controladores en cada uno, o qué es la sintaxis de enrutamiento??
Los marcos de consistencia y flexibilidad abordan este problema al proporcionar una respuesta cuidadosamente considerada a la pregunta "¿Qué componente debemos usar aquí??"Y asegurar que los componentes particulares elegidos funcionen bien juntos. Además, los marcos proporcionan convenciones que reducen la cantidad de código que un desarrollador nuevo en el proyecto tiene que entender: si comprende cómo funciona en el enrutamiento en un proyecto de Laravel, por ejemplo, comprende cómo funciona en todos los proyectos de Laravel.
Cuando alguien prescribe el lanzamiento de su propio marco para cada nuevo proyecto, lo que realmente defiende es la capacidad de controlar lo que se dedica a la base de su aplicación.
Eso significa que los mejores marcos no solo le proporcionarán una base sólida, sino que también le darán la libertad de personalizar el contenido de su corazón.
Una breve historia de marcos web y php
Una parte importante de poder responder a la pregunta "¿Por qué Laravel??"Es comprender la historia de Laravel y comprender lo que vino antes. Antes del aumento de la popularidad de Laravel, había una variedad de marcos y otros movimientos en PHP y otros espacios de desarrollo web.
Ruby on Rails
David Heinemeier Hansson lanzó la primera versión de Ruby on Rails en 2004, y ha sido difícil encontrar un marco de aplicaciones web desde entonces que no ha sido influenciada por Rails de alguna manera.
Los rieles popularizaron MVC, API JSON RESTFUL, Convención sobre Configuración, Registro Activo y muchas más herramientas y convenciones que tuvieron una influencia profunda en la forma en que los desarrolladores web se acercaron a sus aplicaciones, especialmente con respecto al desarrollo rápido de aplicaciones.
La afluencia de marcos PHP
Estaba claro para la mayoría de los desarrolladores que Rails, y marcos de aplicaciones web similares, eran la ola del futuro, y los marcos de PHP, incluidos aquellos que ciertamente imitan los rieles, comenzando a aparecer rápidamente.
Pastelera fue el primero en 2005, y pronto fue seguido por Symfony, Codeigniter, Zend Framework y Kohana (una bifurcación Codeigniter).
Yii Llegó en 2008, y Aura y Slim en 2010. 2011 trajo Fuelphp y Laravel, los cuales no fueron del todo en las ramas de Codeigniter, sino que se propusieron como alternativas. Algunos de estos marcos fueron más rieles, centrados en los mapeadores de objetos de base de datos (ORMS), estructuras de MVC y otras herramientas dirigidas al desarrollo rápido. Otros, como Symfony y Zend, se centraron más en los patrones de diseño empresarial y el comercio electrónico.
Lo bueno y lo malo de codeigniter
CakePhp y Codeigniter fueron los dos primeros marcos de PHP que fueron más abiertos sobre cuánto se extrajo su inspiración de los rieles. Codeigniter rápidamente saltó a la fama y para 2010 fue posiblemente el más popular de los marcos PHP independientes.
Codeigniter era simple, fácil de usar y contaba con una documentación sorprendente y una comunidad fuerte. Pero su uso de la tecnología y los patrones modernos avanzó lentamente, y a medida que el mundo del marco creció y las herramientas de PHP avanzaron, Codeigniter comenzó a quedarse atrás en términos de avances tecnológicos y características listas para usar.
A diferencia de muchos otros marcos, Codeigniter fue administrado por una empresa, y tardaron en ponerse al día con PHP 5.Las características más nuevas de 3 como espacios de nombres y los movimientos a Github y posterior compositor. Fue en 2010 que Taylor Otwell, El creador de Laravel, quedó lo suficientemente insatisfecho con CodeInigniter como para escribir su propio marco.
Laravel 1, 2 y 3
La primera versión beta de Laravel 1 se lanzó en junio de 2011, y se escribió completamente desde cero. Presentaba un ORM personalizado (elocuente); enrutamiento basado en el cierre (inspirado en Ruby Sinatra); un sistema de módulo para la extensión; y ayudantes para formularios, validación, autenticación y más.
Más tarde, Laravel 4 y Laravel 5 vinieron y cambiaron todo el juego.
¿Qué tiene de especial Laravel??
Entonces, ¿qué es lo que distingue a Laravel?? ¿Por qué vale la pena tener más de un marco de PHP en cualquier momento?? Todos usan componentes de Symfony de todos modos, correcto? Hablemos un poco sobre lo que hace que Laravel "Tick."
La filosofía de Laravel
Solo necesita leer los materiales y lecturas de marketing de Laravel para comenzar a ver sus valores. Taylor usa palabras relacionadas con la luz como "iluminar" y "chispa.
Y luego están estos: "Artisans?' "Elegante?'Además, estos: “Aliento de aire fresco." "Nuevo comienzo."Y finalmente:" Rápido." "Velocidad de la luz."Los dos valores más fuertemente comunicados del marco son aumentar la velocidad del desarrollador y la felicidad del desarrollador.
Taylor ha descrito que el lenguaje "artesanal" contrasta intencionalmente con valores más utilitarios. Puedes ver la génesis de este tipo de pensamiento en su pregunta de 2011 sobre stackexchange (http: // bit.ly/2dt5kms) en el que declaró: "A veces paso cantidades ridículas de tiempo (horas) agonizando por hacer que el código se vea bonito" - Solo por el bien de una mejor experiencia de mirar el código en sí.
Y a menudo ha hablado sobre el valor de hacer que sea más fácil y rápido para los desarrolladores llevar sus ideas a buen término, deshacerse de las barreras innecesarias para crear excelentes productos. Laravel es, en su núcleo, sobre equipar y habilitar a los desarrolladores. Su objetivo es proporcionar código y características claras, simples y hermosas que ayuden a los desarrolladores a aprender, comenzar y desarrollar rápidamente y escribir código que sea simple, claro y durará.
El concepto de dirigir a los desarrolladores es claro en los materiales de Laravel. "Happy Developers Make the Best Code" está escrito en la documentación.
"La felicidad del desarrollador de la descarga a la implementación" fue el eslogan no oficial por un tiempo. Por supuesto, cualquier herramienta o marco dirá que quiere que los desarrolladores sean felices. Pero tener la felicidad del desarrollador como una preocupación principal, en lugar de secundaria, ha tenido un gran impacto en el estilo de Laravel y el progreso de la toma de decisiones. Cuando otros marcos pueden apuntar a la pureza arquitectónica como su objetivo principal, o compatibilidad con los objetivos y valores de los equipos de desarrollo empresarial, el enfoque principal de Laravel es servir al desarrollador individual.
Cómo Laravel logra la felicidad del desarrollador
Solo decir que quieres hacer feliz a los desarrolladores es una cosa. Hacerlo es otro, y requiere que cuestione lo que en un marco es más probable que haga que los desarrolladores sean descontentos y lo que es más probable que los haga felices. Hay algunas maneras en que Laravel intenta facilitar la vida de los desarrolladores.
Primero, Laravel es un marco rápido de desarrollo de aplicaciones. Eso significa que se centra en una curva de aprendizaje superficial (fácil) y en minimizar los pasos entre comenzar una nueva aplicación y publicarla. Todas las tareas más comunes en la creación de aplicaciones web, desde interacciones de base de datos hasta autenticación, colas, correo electrónico y almacenamiento en caché, son más simples por los componentes que proporciona Laravel.
Pero los componentes de Laravel no son solo geniales por sí solo; Proporcionan una API consistente y estructuras predecibles en todo el marco. Eso significa que, cuando intentas algo nuevo en Laravel, es muy probable que termines diciendo: "... y simplemente funciona?'
Esto tampoco termina en el marco en sí,. Laravel proporciona un ecosistema completo de herramientas para construir y lanzar aplicaciones. Tiene Homestead y Valet para el desarrollo local, Forge for Server Management y Envoyer para la implementación avanzada.Y hay un conjunto de paquetes adicionales:
Laravel está tratando de sacar el trabajo repetitivo de los trabajos de los desarrolladores para que puedan hacer algo único.
"Extractos de - Laravel Up & Running Book"