Imagen de avatar anacareaga
Ana Lilia Careaga

“Laravel: el castillo de software en la Web”

Ana Lilia Careaga Mercadillo, agosto  de 2015

Abstract

Laravel is a prominent member of a new generation web application framework created by Taylor Otwell.  The initial release was done 4 years ago and the 5th   was launched   recently,  on July 2015  offering   for the first time the long-term support (LTS)  with planned availability of bug fixes and security patches. Laravel   has an   expressive and simple syntax. Its most important features include the   MVC architectural pattern and the different ways to access relational databases. It is an  open source free software released under the MIT License. According to some developers’ surveys, Laravel is the most popular web framework now. On the other hand, in Narnia,  Paravel is the name of the castle in which, according to Taylor Otwell, Laravel was inspired: “Laravel rhymes with Paravel. I thought the name had a classy and sophisticated ring to it”.

Introducción

Hace  varios años ya, como parte de mi entrenamiento en nuevas tecnologías  en Telmex, tuve la oportunidad de estudiar  en uno de esos lugares tan deliciosamente escondidos entre  la playa blanca y el bosque de tono oscuro. En definitiva, un lugar sedante y pacífico, alejado del bullicio que se escucha  unos kilómetros abajo cuando  los jóvenes viajeros se agitan en la estrecha playa del Mediterráneo. Me refiero a Sophia Antípolis, un hermoso  parque tecnológico conocido  por algunos  como el “Silicon Valley francés”, ubicado al sureste de Niza en los  Alpes marítimos franceses fundado en 1969. El nombre de Sofía Antípolis responde a los orígenes griegos de esta región   (Sofía- sabiduría y Antípolis -de Antibes, una ciudad helénica que tenía fines comerciales) y que actualmente consolida numerosos centros de investigación en Telecomunicaciones, Informática, Electrónica, Biotecnología, Geociencias, Química y Ciencias de la Salud. Recuerdo que estando de visita en los laboratorios de Alcatel-Thompson (ahora Alcatel-Lucent), un ingeniero francés después de mostrarme sus más importantes desarrollos de equipos de transmisión ópticos, me dijo que no quería hacerme perder mi tiempo mostrándome  tecnología que en poco tiempo quedaría obsoleta; en cambio, proponía  llevarme a un lugar que quedaría por siempre en mi memoria y que eternamente  estimularía mi imaginación. Quedé desconcertada, pero cuando menos pensé estaba montada en un Renault desde el cual fui percibiendo un paisaje cálido lleno de aroma y de sol. Pasamos por Niza y luego Cannes, rodeando el Mar Mediterráneo hacia al sur, rumbo a Perpignan, donde por cierto debía también visitar algunos días después. De pronto,  cerca de Marsella, alcancé a observar una especie de masa calcárea que sobresalía y bordeaba el agua turquesa del Mediterráneo. “Es Calanques”, me comentó el amable ingeniero francés diciéndome que estaba en un lugar único en el mundo, en un verdadero monumento a la naturaleza. El paisaje seguía siendo hermoso pero aún no comprendía cuál sería el destino final de este magnífico paseo, pues ya llevábamos un par de horas en el auto y estábamos cerca de Montpellier. Sin atreverme a preguntar para no echar a perder la sorpresa que se me quería dar, permanecí en silencio disfrutando de este prodigioso paseo marítimo por auto desde donde podía disfrutar los eternos pinos y robles entre cuyas ramas relucía el mar inquieto. De pronto, arriba, como una especie de nube blanca suavemente coloreada por el sol, sobre una colina, pude observar las almenas lucientes de un castillo que se parecía al que me describieron tantas veces en los cuentos de hadas. Pero al irme acercando me di cuenta que más que un castillo era una completa ciudad fortificada encaramada en un pequeño promontorio. -“Es Carcassone”-, interrumpió el ingeniero señalando suavemente la colina sobre la cual se observaba una inexpugnable fortaleza con un doble sistema de murallas y un castillo imponente. En seguida me explicó que “la cité” fue una ciudad que estaba ya ocupada desde el año 800 a.C. y fue fortificada por los romanos para convertirla en un centro de administración de la colonia denominada “Julia Carcaso”. Debido a su ubicación geográfica estratégica y por ser el camino que unía el Mediterráneo con el Atlántico, esta ciudadela sufrió  numerosas conquistas y contiendas. Hay dos formas de acceder a “la cité”, a pie, atravesando el “Puente Viejo” o en auto. Nosotros accedimos por auto por limitaciones de tiempo, estacionando cerca de  una de las cuatro puertas que dan acceso al interior. La “Porte Narbonnaise”, flanqueada por sus respectivas torres gemelas ubicadas sobre un foso con puente levadizo, es el acceso principal donde  un   busto de la princesa sarracena Carcas nos da la bienvenida. Desde luego, el nombre de “Carcassone” proviene del nombre de esta princesa quien, de acuerdo a la leyenda,  cuando murió su esposo  el rey musulmán  Ballak,  libró   esta ciudad del ejército de Carlomagno protegida por las murallas y colocando muñecos de paja y lanza flechas de ballesta para hacer creer que el ejército era numeroso ; cuando ganó esta batalla, el pueblo lo celebró  haciendo  sonar todas las campanas de la ciudad exclamando “!Carcas sonne!” ( “Carcás suena “).

El castillo de Carcassone  era en sí también una fortaleza dentro  de la ciudad por estar adosado a la muralla exterior y fue construido en el siglo XII por los Condes Trencavel junto con la emblemática Basílica de Saint-Nazaire, declarada ahora monumento nacional de Francia ya que fue construida sobre otra iglesia visigoda de estilo romántico del siglo XI para ser consagrada por el Papa Urbano II.  A pesar de que Carcassone es un lugar donde uno puede conocer diferentes sitios, en mi caso, no hubo tiempo más que de “callejear” y disfrutar aquél trazado de calles angostas y empedradas de la época medieval con sus casas con fachadas de entramado que conformaron un barrio de gremios y artesanos de la época feudal. Se hizo tarde y hubo que regresar a Sophia Antipolis; me sentía cansada pero era un cansancio de esos que te asaltan por las noches frías o tibias pero que disipan excitación que canta por la sangre cuando nos sucede algo extraordinario, algo no acostumbrado; fue como vivir un rato cosas ajenas y ancestrales como si fueran propias   ….

Al paso del tiempo, me di cuenta de que el ingeniero francés tenía razón,  la tecnología de entonces ya no existe más, pero aquélla visita a ese fantástico lugar medieval  ha permanecido en mi durante todos estos años despertando   aún curiosidad e imaginación ,  misma que además  pude después transferir a mis hijos a través de muchos cuentos alrededor de este  “chateau forte ” (castillo fuerte)  y visitando también  otros castillos más como el de  Warwick (Oxfordshire, Inglaterra) , Sully (la Loire, Francia )  y, recientemente  el de Praga; castillos construidos con gran ingeniería  que nos recuerdan  que a lo largo de la historia, han sucedido innumerables guerras y batallas entre tribus, civilizaciones y ciudades pero también castillos llenos de magia e ilusión que han inspirado numerosas novelas y cuentos fantásticos como la  saga de 7 libros de  las “Crónicas de Narnia”, escrita por  C.S. Lewis , en donde  su castillo Paravel,  es una ciudadela parecida a Carcassone ubicada junto al Gran Río del país ficticio de Narnia que desembocaba en el Océano Oriental.

Seguramente cuando el escritor  irlandés C.S. Lewis escribió las “Crónicas de Narnia”,  necesitó inspirarse en  algún majestuoso castillo donde  pudiera mezclar lo histórico con lo fantástico. Dicen que se inspiró en un castillo ubicado en Irlanda del Norte llamado Dunlance, situado también al borde de un río, pero dado que ese castillo está en ruinas, adoptó el concepto de la ciudad fortificada de Carcassone para crear  su ciudad “Cair Paravel”, la capital de Narnia. El gran palacio de Paravel fue construido en la Edad de Oro de Narnia que corresponde  históricamente a la Edad Media (siglo XI) y el nombre que da a este castillo significa literalmente “Pequeña Corte” (del inglés antiguo, cair =”corte” y paravel pequeña). Pero no solo el castillo Paravel nació de la inspiración de castillos como el de  Carcassone; también la tecnología de software ha sido inspirada en castillos, como  el framework de código abierto que se ha hecho muy popular por desarrolladores de aplicaciones y servicios web llamado “Laravel”, el cual, de acuerdo a su creador Taylor Otwell toma su nombre directamente de “Paravel”. En una entrevista, T. Otwell afirma “Cuando estuve pensando en nombres para mi software, me acordé de la geografía de Cair Paravel de las Crónicas de Narnia de C.S. Lewis, las cuales leí mientras vacacionaba en un lugar de ski. En Narnia, Cair Paravel es el nombre del castillo, donde reyes y reinas viven.  Se me ocurrió, entonces, que Laravel rima con Paravel y que además este nombre sería asociado a algo elegante y sofisticado.”

¿Quieres saber más sobre “Laravel”?

Comenzando con lo básico:  ¿qué es un “framework web”?

Seguramente, muchos de los que hemos estado involucrados en los temas de desarrollo de software, hemos tropezado con el concepto de “framework”, cuya traducción literal del inglés sería “marco de trabajo”. Si le preguntamos a un desarrollador de aplicaciones web  su definición,  no le sería  fácil que nos  diera una explicación clara de este término porque, aunque su uso le sea totalmente intuitivo, no es fácil describirlo a pesar de que este término se emplea en muchos ámbitos del desarrollo de software. En general,  cuando nos referimos a algún “framework”, en la ingeniería del software, estamos considerando cualquier aplicación ya sea médica, de desarrollo de juegos, desarrollo web  o cualquier software que pueda ayudarnos a “armar nuestro rompecabezas” del proceso complejo que implica cualquier desarrollo de aplicación, independientemente del lenguaje de programación que se empleé. Por lo tanto, los objetivos principales del framework son acelerar los procesos de desarrollo de cualquier aplicación mediante el uso de diferentes patrones tratando de reutilizar el código ya existente  que facilite su desarrollo.

Para comprender cómo trabaja un framework es importante explicar lo que es un patrón “Modelo-Vista-Controlador”, conocido comúnmente como “MVC”. El patrón MVC es en sí una guía para desarrollar aplicaciones que tengan interactividad con el usuario. Este modelo separa la lógica de  los datos de una aplicación interfaz/usuario. Por lo tanto, dado que  MVC  se basa en la separación de conceptos y en la posibilidad de reutilizar el código, propone  3 componentes que se interrelacionan entre sí:

  1. Modelo

  2. Vista

  3. Controlador

En conclusión, un “framework” es una metodología de desarrollo de aplicaciones de software, particularmente las de desarrollo web por su gran popularidad, que facilita la tarea del desarrollo de una aplicación y su mantenimiento respectivo. Como lo mencioné, normalmente el framework no está ligado necesariamente a algún lenguaje, pero hay ocasiones que si, por ejemplo el cada vez más popular “Ruby on Rails” (“Ruby” es el lenguaje y “Rails” el framework) y “Laravel” que está asociado a PHP5. Sin embargo, hay otros frameworks como “Biscuit” que puede emplear diferentes lenguajes.

Evidentemente, cualquier desarrollador puede optar por no usar un framework. Su decisión dependerá del tamaño de la aplicación y si ésta es pequeña, quizá le convenga no emplearlo. Sin embargo, a medida que la aplicación se hace grande y compleja, cualquier programador competente lo empleará para facilitar su trabajo de diseño y mantenimiento. Las ventajas de emplear un framework resultan obvias al saber que éste facilitará al programador a plantear la estructura global de la aplicación mediante un “esqueleto” a rellenar. Por otra parte, como son de código abierto, facilita la colaboración y existen un sinnúmero de librerías que pueden emplearse para facilitar el desarrollo de cualquier aplicación.

TOP 10 frameworks PHP

Al ser PHP un lenguaje web del lado  del servidor es lógico que la mayor parte de los frameworks se desarrollen para este lenguaje ya que proporcionan la posibilidad de reutilizar mucho del código existente y compartir bibliotecas que hacen que el desarrollo sea más rápido y seguro.

Los top 10 frameworks del 2015 son los siguientes:

  1. Laravel, encabezando esta lista de popularidad, este framework es el más preferido por los desarrolladores para aplicaciones web y API´s modernas.

  2. Symfony, es el framework de alto rendimiento elegido para aplicaciones empresariales.

  3. CodeIgniter, recomendable para programadores principiantes, este framework se mantiene como el preferido en niveles académicos.

  4. CakePHP, aplaudido por su estructura MVC, se mantiene en el cuarto lugar a pesar de que aún no cuenta con bibliotecas suficientes.

  5. Zend, a menudo ha sido reconocido como un software empresarial estable, compite con Symfony para desplegar aplicaciones de forma rápida y eficiente.

  6. Phalcon, se distingue principalmente por tener el mejor rendimiento por lo que se emplea normalmente en la construcción de sitios de alto tráfico.

  7. SlimPHP, flexible y ligero, tiene el objetivo de poder implementar rápido las ideas en un código sencillo minimizando la curva de aprendizaje. Principalmente es empleado para el desarrollo API pero también se pueden codificar aplicaciones enteras.

  8. Yii, su gran ventaja consiste en el alcance que tiene por el número de plugins con los que el usuario puede personalizar sus aplicaciones. También es adecuado para sitios de alto tráfico por su alto rendimiento.

  1. Fat –Free PHP framework, considerado como un poderoso mini-framework, está diseñado para construir aplicaciones dinámicas y robustas de una manera fácil y rápida.

  2. Kohana , es un framework con MVC jerárquico cuyo objetivo es ser ligero, seguro y fácil de usar.

Laravel: el framework para desarrollo de aplicaciones web más popular

Laravel es un nuevo y poderoso framework PHP desarrollado por Taylor Otwell, que promete llevar al lenguaje PHP a un nuevo nivel. Laravel, propone una forma de desarrollar aplicaciones y servicios web de un modo mucho más ágil. Su filosofía consiste en el desarrollo del código PHP de forma simple y elegante evitando lo que se conoce como “código spaguetti”. Inspirado en Ruby on Rails y creado apenas en 2011, actualmente constituye el framework número uno  para los desarrolladores.

Las principales características de Laravel son:

  • Documentación completa y concisa.

  • Modularidad: Laravel emplea más de 20 librerías diferentes que están integradas con el gestor de dependencias Composer.

  • Codificación expresiva y elegante, fácil de aprender.

  • Eloquent ORM (Object Relational Mapper), para manejar persistencia de datos de manera simple.

  • Bundles poderosos.

  • Enrutamiento (routing), Laravel proporciona mucha flexibilidad en la definición de las rutas de la aplicación. Está  inspirado en la filosofía de los micro-frameworks  como Silex y Sinatra, además se pueden adjuntar funciones de filtro que se ejecuten en rutas específicas.

  • Gestor de configuración: la aplicación puede ejecutarse en diferentes entornos, esto quiere decir que tanto los dominios como la base de datos y sus credenciales pueden ser  diferentes si se ejecutan localmente en el entorno de test o en los servidores de producción. Laravel nos permite definir configuraciones separadas para cada uno de los entornos.

  • Confeccionador esquema, migraciones y repoblaciones: estas características nos permiten elegir un esquema de base de datos dentro del lenguaje  PHP y así mantener un registro de los cambios para poder realizar una  migración de base de datos. Las repoblaciones (o “seeding”) permiten poblar las tablas  de una base de datos seleccionadas una vez realizada la migración y proceder a  rellenar con datos las tablas.

  • Motor de Plantillas llamado “Blade” que es un lenguaje ligero con el cual se pueden crear diseños anidados con bloques predefinidos en el que el contenido se inserta dinámicamente. Blade  puede guardar archivos en caché.

  • Soporte para la cache.

  • Redis: Es el  sistema de almacenamiento clave-valor en memoria que tiene fama de ser extremadamente rápido.

  • Email: con la clase Mail que es un derivado de la librería SwiftMailer, Laravel proporciona una forma muy sencilla de enviar e-mails, con contenido HTML y adjuntos.

  • Open Source desarrollado por MIT.

En opinión de la mayoría de los desarrolladores web, el corazón de la filosofía de Laravel es su  simplicidad y  expresividad. Sin duda, Laravel ha dado especial atención en el nombrado de las clases para comunicar con efectividad las acciones en un inglés sencillo. Mira este código:

<? php

Route:: get(‘ area/{ id}’, function( $ id){

if( 51 = = $ area and !Auth:: check()) {

return Redirect:: guest(‘ login’);

} else {

return “Bienvenido a tu parte ”. $area;

}

})->where (‘id’,’[0-9]+’);

Aunque probablemente no conozcas Laravel, con este código te puedes dar  una idea de su expresividad al hacerlo más legible con sintaxis sencilla de aprender.

Laravel 5

Laravel 5 fue lanzado en febrero 2015 como un resultado de cambios significativos con su antecesor que resultó en una re-numeración que cambió de 4.3 a 5. Laravel 5 introduce importantes cambios entre los cuales el más relevante es la introducción de una  nueva estructura del  árbol de  direcciones de aplicaciones (carpetas). Otros cambios importantes incluyen el soporte del paquete conocido como “Scheduler” y el “Flysystem” que permiten el almacenamiento remoto a través de “Elixir”.

Estructura de carpetas de Laravel 5

Laravel 5.1 recién se lanzó en julio 2015 con la novedad de ser la primera versión que proporciona soporte de largo plazo (LTS) y algunos patches de bug y de seguridad.

Conclusiones

Nuevas tecnologías derivadas a la interacción hombre-máquina están siendo impulsadas por conceptos como usabilidad, experiencia de usuario y accesibilidad. El usuario cada vez más tendrá el control y las opciones para interactuar con las diferentes plataformas, lo que exige una mayor flexibilidad en el desarrollo de aplicaciones web. Estos cambios se están observando desde hace unos cuatro años impulsados por una posible masificación del “Internet de las Cosas” y los “wearables” en un futuro cercano. Sin duda, Laravel  forma parte de este desarrollo de nuevas aplicaciones donde una nueva etapa PHP ha iniciado.

¿Estás listo para conocerlo?

Deja un comentario