Sv Community El Salvador

Soporte y Tecnología => Diseño & Webmaster Corner => Mensaje iniciado por: auron3098 en abril 03, 2014, 10:11:04 am

Título: [Laravel Framework] - Para trabajar en PHP
Publicado por: auron3098 en abril 03, 2014, 10:11:04 am
Saludos mis estimados, esta vez solo les queria compartir un framework para trabajar en PHP que a mi en lo personal me ha encantado, aunque tengo menos de una semana de conocerlo, me ha movido el petate y ojo que apenas estoy aprendiendo por medio de tutoriales que encuentro en la web, no crean que soy pro en esto. A continuación les comentare sobre que trata:

Laravel es un framework de código abierto para desarrollar aplicaciones y servicios web con PHP 5. Su filosofía es desarrollar código PHP de forma elegante y simple, evitando el "código espagueti". Fue creado en 2011 y tiene una gran influencia de frameworks como Ruby on Rails, Sinatra y ASP.NET MVC.

Laravel tiene como objetivo ser un framework que permita el uso de una sintaxis elegante y expresiva para crear código de forma sencilla y permitiendo multitud de funcionalidades. Intenta aprovechar lo mejor de otros frameworks y aprovechar las características de las últimas versiones de PHP.

Características

Sistema de ruteo, también RESTful
Blade, Motor de plantillas
Peticiones Fluent
Eloquent ORM
Basado en Composer
Soporte para el caché
Soporte para MVC
Usa componentes de Symfony

Laravel, propone en el desarrollo usar 'Routes with Closures', en lugar de un MVC tradicional con el objetivo de hacer el código más claro. Aun así permite el uso de MVC tradicional

Patrón MVC

Laravel, propone en el desarrollo usar 'Routes with Closures', en lugar de un MVC tradicional con el objetivo de hacer el código más claro. Aun así permite el uso de MVC tradicional.

Código: [Seleccionar]
<?php  
Route
::get('usuario/listar', function() {  
      
//punto de entrada de la petición HTTP  
      
...  
});

Modelo

Laravel incluye un sistema de mapeo de datos relacional llamado Eloquent ORM que facilita la creación de modelos. Este ORM se funda en patrón active record y su funcionamiento es muy sencillo. Es opcional el uso de Eloquent, pues también dispone de otros recursos que nos facilitan interactuar con los datos, o específicamente la creación de modelos.
La forma de crear Modelos en Laravel usando Eloquent ORM, es tan simple como:

Código: [Seleccionar]
class Libro extends Eloquent { 
 
    //defiendo el nombre de la tabla con la info de los libros 
    public static $table = 'tb_libros'; 
}

Incluso el código del modelo puede ser más simple aún, en el caso que el nombre de la tabla coincida con el nombre de la clase. Pues Laravel al igual que Ruby on Rails, usa el paradigma de programación donde se favorece "la convención sobre la configuración".Y si ahora necesitamos disponer un listado, en la ruta:http://mi-aplicacion.com/libro/listarEntonces, sólo bastaría crear la Ruta e interactuar con el modelo 'Libro' anteriormente creado, del modo siguiente:

Código: [Seleccionar]
Route::get('libro/listar', function() { 
    $libros = Libro::all(); 
    return View::make('mi_vista', $libros);  //Muestra los datos
});

Vista

Laravel incluye de paquete un sistema de procesamiento de plantillas llamado Blade. Este sistema de plantillas favorece un código mucho más limpio en las Vistas, además de incluir un sistema de Caché que lo hace mucho más rápido. El sistema Blade de Laravel, permite una sintaxis mucho más reducida en su escritura. Por ejemplo, en vez pintar la vista usando el código PHP:

Código: [Seleccionar]
<php echo $mi_nombre; ?>

En Blade se escribiría:

Código: [Seleccionar]
{{$mi_nombre}}

Lo cual no es una gran ventaja sobre todo cuando siempre es posible usar una expresión resumida en PHP. No obstante, lo que si es una gran ventaja, es el modo en que Blade maneja las plantillas.

Plantillas

Las plantillas en Blade son archivos de texto plano que contiene todo el HTML de la página con etiquetas que representan elementos o zonas a incluir en la plantilla, o vistas parciales como se conocen en otros frameworks PHP. Sin embargo, en Blade estos elementos incrustados se organizan en un sólo archivo. Esta es una idea muy interesante de Laravel que mejora la organización de las vistas y su rendimiento. Sobre todo cuando las vistas pueden llegar a ser muy complejas incluso con elementos anidados. En el render de una Vista completa en Lavarel se usan dos archivos: la plantilla definiendo el HTML global y las zonas a incluir. Un sólo archivo, la Vista, con los elementos (partial views).
Un ejemplo típico para una plantilla HTML5 de Blade:

Código: [Seleccionar]
<!DOCTYPE html>
<html lang="es">
    <head>
        <meta charset="UTF-8">
        <title>@yield('titulo')</title>
    </head>
    <body>
        @yield('navegacion')
    </body>
</html>

En la plantilla presentada, el código @yield() identifica al método donde como parámetro se indica el nombre de la zona desplegar. Por otro lado, el código de la vista, donde se define la plantilla a usar y la información de las distintas zonas a desplegar:

Código: [Seleccionar]
<!-- identificando la plantilla a utilizar -->
@extends('template')
 
<!-- definiendo una zona -->
@section('titulo')
 
@stop
 
<!-- definiendo otra zona -->
@section('navegacion')
 
@stop

Controlador

Los controladores contienen la lógica de la aplicación y permiten organizar el código en clases sin tener que escribirlo todo en las rutas. Todos los controladores deben extenderse de la clase BaseController.
Un ejemplo de un controlador en Laravel:

Código: [Seleccionar]
class UserController extends BaseController {
    public function mostrarPerfil($id)
    {
        $user = User::find($id);
        return View::make('user.profile', array('user' => $user));
    }
}

Estos pueden ser llamados en las rutas de diferentes maneras, pero la más común usándo rutas es:

Código: [Seleccionar]
Route::get('user/{id}', 'UserController@mostrarPerfil');
Influencia[editar]

La influencia de Laravel ha crecido rápidamente desde su lanzamiento. En la comunidad de desarrolladores es considerado como alternativa sencilla de usar pero que tiene todas las funcionalidades que debe tener un framework.

Laravel es el framework mas utilizado en el 2013 por su fácil integración y su versatilidad, esta por encima de muchos frameworks comunes en el mercado:
(http://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2013/12/chart1-1024x853.png)

Aquí les dejo unos cuantos tutoriales que he encontrado, al comprender mas este framework empezare a compartirles aplicaciones web hechas con dicho esquema de trabajo:

Video tutoriales:
https://www.youtube.com/playlist?list=PLEtcGQaT56chQN6n4byqRIMYnTHpgkG6m (https://www.youtube.com/playlist?list=PLEtcGQaT56chQN6n4byqRIMYnTHpgkG6m)

Tutoriales en texto:
http://codehero.co/series/laravel-4-desde-cero/ (http://codehero.co/series/laravel-4-desde-cero/)
http://uno-de-piera.com/category/tutoriales-de-laravel/ (http://uno-de-piera.com/category/tutoriales-de-laravel/)

Foro de ayuda y comunidad:
http://laraveles.com/foro/ (http://laraveles.com/foro/)
https://www.facebook.com/pages/Comunidad-Laravel-Espa%C3%B1ol/641708599177855 (https://www.facebook.com/pages/Comunidad-Laravel-Espa%C3%B1ol/641708599177855)

Fuente de donde hice el post:
http://es.wikipedia.org/wiki/Laravel (http://es.wikipedia.org/wiki/Laravel)
http://codehero.co/laravel-4-desde-cero-estructura-del-proyecto/ (http://codehero.co/laravel-4-desde-cero-estructura-del-proyecto/)

Nota: Pienso ir mejorando este post en base a lo que vaya aprendiendo en el camino, como dije antes, me enamore de este framework tanto así como si vieran a una mujer chelota altota y bien proporcionada en minifalda pasando frente a uno, y me he propuesto aprender lo mas que pueda a modo de llevarlo a lo practico y hacerme un par de proyectos a modo de conocer mas al respecto.
 :yao_ming:

Por el momento es todo, pero volvere con mas... :drinks:
Título: Re:[Laravel Framework] - Para trabajar en PHP
Publicado por: chepito123 en abril 03, 2014, 10:20:19 am
 :thumbsup: :thumbsup: :thumbsup:

Interesante vamos a leerlo
Título: Re:[Laravel Framework] - Para trabajar en PHP
Publicado por: g00mba en abril 03, 2014, 10:27:15 am
me llama mas la atencion el Yii framework.
por cierto vi el getting started y en ninguna parte dice que las rutas sean un substituto para el MVC, solo que se usa en conjunto.
Título: Re:[Laravel Framework] - Para trabajar en PHP
Publicado por: auron3098 en abril 03, 2014, 10:32:54 am
me llama mas la atencion el Yii framework.
por cierto vi el getting started y en ninguna parte dice que las rutas sean un substituto para el MVC, solo que se usa en conjunto.

Leí que el Yii tenia muchos seguidores, yo lo que pienso es que ninguno de los diversos Frameworks sea mejor que otro, siento yo que es mas la comodidad que te brinda uno sobre otro, al final sabes que el producto es casi lo mismo 
Título: Re:[Laravel Framework] - Para trabajar en PHP
Publicado por: salvadoresc en abril 03, 2014, 10:40:19 am
nunca lo habia escuchado  :thumbsup:

he trabajado un poco con cake (especialmente en el aspecto de sus interfaces) y habia escuchado de yii pero no lo he usado...
Título: Re:[Laravel Framework] - Para trabajar en PHP
Publicado por: auron3098 en abril 03, 2014, 10:58:43 am
nunca lo habia escuchado  :thumbsup:

he trabajado un poco con cake (especialmente en el aspecto de sus interfaces) y habia escuchado de yii pero no lo he usado...

Yo personalmente todo lo hacia a php a pata, la semana pasada se me dio por investigar que framework podia usar ya que en la universidad se habla bastante de eso y pues me tope con la tabla que publique en el primer post de la popularidad de frameworks y pues como el Laravel encabeza la lista dije: me ire por el mas popular XD