Upload
jorge-antonio-linares-vera
View
1.549
Download
6
Tags:
Embed Size (px)
DESCRIPTION
Laravel, es el framework PHP de código abierto de mayor aceptación actualmente para este lenguaje, y su simplicidad en la sintaxis, su elegancia en la escritura, su motor de plantillas incorporado, la potencia de composer y de artisan para su manejo y los complementos con los que cuenta, hacen que PHP que para muchos estaba empezando a quedarse en el olvido, vuelva a ser rescatado y sea ahora un lenguaje moderno, rápido, eficiente y profesional trabajado desde Laravel.
Citation preview
/ jorlive
Desarrollo Rápido de Apps Web con Laravel
@jlinformatico
#DevHangout
Laravel for Dummies
Mi Perfil
Jorge Antonio Linares Vera
Desarrolador BackendLaravel & Ruby On Rails en Noveltie
● Desarrollador de la plataforma www.linvermet.com
● CEO redaventura.com (startup)● Director de I+D Comunidad Tacna Valley● Fundador de la Comunidad de Software
Libre BasadrinuX - Tacna
Motivación
● Desarrollar con buenas prácticas en PHP y con el patrón MVC.
● Agilizar el desarrollo de proyectos web con el framework laravel 4.
Agenda
● Qué es Laravel?● Fundamentos Laravel● Mi primer ciclo MVC● Desarrollando mi App Laravel
PHP App Development
¿Qué es Laravel?Nuevo Resurgir de PHP
@jlinformatico
Introducción
● Laravel, es el framework PHP de código abierto de mayor aceptación actualmente para construir aplicaciones web de forma expresiva y elegante por su simplicidad en la sintaxis, su elegancia en la escritura, su motor de plantillas incorporado, la potencia de composer y de artisan para su manejo y los complementos con los que cuenta.
Filosofía
● La programación no tiene que ser aburrida y repetitiva.
● Busca reducir sintaxis de código.
● Se puede disfrutar lo que se hace sin eliminar funcionalidades en nuestras aplicaciones o sacrificar otras cosas.
● Enfocado enormemente a reutilizar conocimiento.
Filosofía
● Tomar lo mejor de otros Frameworks como Ruby on Rails, Sinatra, ASP .NET MVC y por supuesto Symfony.
● Adecuado para aplicaciones de cualquier tamaño.
● Enfocada en patrones de desarrollo para influenciar buenas prácticas.
Por qué Laravel?
● Una Comunidad activa que va creciendo.● Desarrollo activo que garantiza corrección de problemas de seguridad, mejoras, etc.
● Buena Documentación y bien explicado.
Características
● Va por la versión 4 publicada en Mayo del 2013 (actualmente en la versión 4.2).
● Creado en 2011 por Taylor Otwell - https://twitter.com/taylorotwell
● Publicado bajo la licencia open source MIT - http://opensource.org/licenses/MIT
● Está inspirado en Ruby on Rails y Symfony, de quien posee muchas dependencias.
● Está diseñado para desarrollar bajo el patrón MVC.● Autentificación fácil de implementar.● Muchos components de Symfony
Artisan
Cliente de consola que nos permite ejecutar comandos propios del framework.
● Comandos básicos para artisan:http://cheats.jesse-obrien.ca/
Composer
Composer el nuevo gestor de paquetes y de dependencias de PHP. Esto quiere decir que Composer va a descargar de sus repositorios todas las librerías y las dependencias con las versiones requeridas que el proyecto necesite y manejarlas en un solo lugar de manera ordenada.
Obtenerlo desde:https://getcomposer.org/
Eloquent ORM (Object-Relational Mapping)
● Posee un sistema de mapeo de datos relacional llamado Eloquent ORM, que nos permite interactuar con nuestra base de datos como si cada tabla fuera un Modelo, respetando más fielmente la división MVC.
Sistema de Plantillas Blade
● Utiliza un sistema de procesamiento de plantillas llamado Blade, el cual hace uso de la cache para darle mayor velocidad.
Fuentes
Libros:● Laravel: Code Bright - https://leanpub.com/codebright● Getting Started with Laravel 4● Laravel: From Apprentice To Artisan -
https://leanpub.com/laravel● Laravel Testing Decoded -
https://leanpub.com/laravel-testing-decodedWeb:
● Documentación Oficial: http://laravel.com/docs
Lo que necesitas saber
Para comenzar a emprender un proyecto web, requieres de conceptos básicos:● Por qué trabajar con Frameworks● Buenas prácticas de desarrollo● Desarrollar con Patrón MVC● PHP 5 y POO● GIT / github● Servidores Web● Comandos básicos en Gnu/Linux● Otros Lenguajes y Frameworks.
Framework
● Framework es un marco de trabajo (un esqueleto, un patrón) para el desarrollo y/o la implementación de una aplicación.
Microframeworks
● Phalcon, Silex, BulletPHP, Slim, Limonade, Fat-Free framework, Wave Framework, Recess PHP, Tonic.
CMS en Laravel
Estable:● Laravel Bootstrap
https://github.com/davzie/laravel-bootstrap● TypiCMS: https://github.com/sdebacker/TypiCMS● Bootstrap starter site
https://github.com/andrewelkins/Laravel-4-Bootstrap-Starter-Site
● Pongo CMS v1 (Laravel 3) http://pongocms.com● Wardrobe CMS (blogging)
https://github.com/wardrobecms/wardrobe● CodeSleeve https://github.com/CodeSleeve/platform
CMS en Laravel
En Desarrollo:● PongoCMS v2 http://pongocms.com● October CMS http://octobercms.com/● Larapress: https://github.com/larapress-cms/larapress● Coanda: https://github.com/CoandaCMS/coanda-core● PyroCMS v3 https://www.pyrocms.com/● Platform (Release Candidate)
https://cartalyst.com/manual/platform
Patrón arquitectónico MVC
● Framework es un marco de trabajo (un esqueleto, un patrón) para el desarrollo y/o la implementación de una aplicación.
Programación Orientada a Objetos
● La POO es un paradigma de programación (o técnica de programación) que utiliza objetos e interacciones en el diseño de un sistema.
Sistema de Control de Versiones
● Llevar la gestión de los diversos cambios que se realizan sobre el código de un proyecto de desarrollo de software.
● Quieres profundizar en Git: http://git-scm.com/doc● Quieres practicar: https://try.github.io/
Lo que debes hacer
● Plantéate un proyecto personal, forma un equipo y ten mucha proactividad.
● Es importante configurar tu entorno de desarrollo.
● Es importante desarrollar de manera ágil● Escoger las tecnologías más cómodas y productivas acorde a tu forma de trabajo (editores de código, IDEs, programador de tareas, etc).
● Es importante utilizar la terminal.
Elige una Distribución Gnu/Linux
Que se adapte a tus necesidades:LinuxMint DEElementary OSTrisquelFedoraDebianArchLinuxCentOS
Configura tu servidor web
● Laravel necesita un servidor web. Ya sea cualquiera de los que usa la comunidad como Apache o Nginx.
● Una opción puede ser XAMPP ya sea para Gnu/Linux (GLAMP) o Windows (WAMP), y MAMP para usuarios Mac.
Un Gestor de Base de Datos
● Laravel viene por defecto SQLite● También trabajo con MySql (recomiendo
utilizar MariaDB para temas académicos).● PostgreSQL● MongoDB● Redis
Instala PHP 5.3 o superior
● Laravel requiere el lenguaje de programación PHP. Teniendo en cuenta que Laravel usa algunas características modernas del lenguaje, también necesitarás la versión 5.3.7 o superior.
● Puedes saber que versión tienes escribiendo en la terminal php -v o usando el método phpinfo().
Instalar Composer
● Desde la versión 4 de Laravel, la creación de un proyecto nuevo se maneja con Composer.
● En una distribución basada en debian.$ sudo apt-get install curl
● Ejecutar comando para instalar composer (considerar activar openssl en php.ini):curl -sS https://getcomposer.org/installer | php
Instalar Laravel 4
Desde nuestra terminal accedemos al directorio de nuestro servidor web (ej: cd /var/www/proyectoslaravel) y ejecutamos la linea de comando:
$ composer create-project laravel/laravel devacademy-laravel –prefer-dist
Vamos a instalar sus dependencias:$ composer install --dev
Instalar Laravel 4
Debes darle permisos de escritura a la carpeta /app/storage:$ sudo chmod -R 777 app/storage
Debemos correr nuestro servidor web o del navegador:localhost/proyectoslaravel/devacademy-laravel/publicóphp artisan servelocalhost:8000
Configurando el entorno local
● Asegúrate de instalar las dependencias.● Vamos a generar nuestra clave secreta de la aplicación para darle seguridad a nuestra app y al sistema de autentificación de laravel.php artisan key:generate
● Esta clave se encuentra en app/config/app.php
Fundamentos LaravelMis primeros pasos
@jlinformatico
Estructura del proyectohttp://blog.devacademy.la/post/95503250161/tutorial-laravel-conociendo-la-estructura-de-un.
● appcommandsconfigcontrollersdatabaselangmodelsstartstoragetestviewsfilters.phproutes.php
● bootstrap● public● vendor● composer.json
ModelosPersistencia, Migraciones y Relaciones
@jlinformatico
Configurar la base de datos
● app/config/database.php● Viene por defecto SQLite● Soporte para MariaDB, PostgreSQL,MongoDB
Migraciones
Son un número de scripts PHP que son usados para cambiar la estructura y/o contenido de tu base de datos.$ php artisan migrate:make create_users
app/database/migrationsContamos con 2 métodosup() y down()
$ php artisan migrate:install
Seeds
● Poblar la base de datos.● Creamos un archivo en el directorio app/database/seeds
● Creamos el archivo UserTableSeeder.php● Insertamos código● Configuramos DatabaseSeeder.php● Ejecutamos el script de artisan:php artisan db:seed
●
Eloquent ORM
● Todos los modelos de nuestra app extenderán de la clase padre Eloquent.
● Especifican a que tabla real de la base de datos afectarán.
● Las relaciones entre objetos creadas, estarán presentes en dichos modelos.
Creación de Modelos
● app/models● Todos los modelos deben extender la clase
Eloquent.● Usuario.php
<?phpclass Usuario extends Eloquent {
protected $table = 'usuarios';}
Pensando en CRUD
● Create - Crear una nueva fila● Read - Leer filas existentes● Update - Actualizar filas existentes● Delete - Borrar filas existentes
Relaciones Eloquent
Relaciones entre modelos:
● One to one - belongsTo● One to Many - hasmany● Many to Many (tabla pivote) - belongsToMany
ControladoresRutas, Métodos y Parámetros
@jlinformatico
Controllers
● app/controllers● http://laravel.com/docs/4.2/controllers
class UserController extends BaseController {
public function showProfile($id){ $user = User::find($id); return View::make('user.profile', array('user' => $user)); }}
Manejo de Rutas
● app/routes.php● http://laravel.com/docs/4.2/routing
RESTful Routing
● php artisan controller:make BookController
VistasBlade, formularios y layouts
@jlinformatico
View
● http://laravel.com/docs/4.2/responses#views● app/views/hola.php
<html> <body> <h1>Hello, <?php echo $name; ?></h1> </body></html>
● Route::get('/', function(){ return View::make('hola', array('name' => 'Taylor'));});
Formularios
{{ Form::open(array('url' => 'foo/bar')) }} //{{ Form::close() }}
CSS y Javascript con Bootstrap
{{HTML::style('css/bootstrap.min.css')}}
{{HTML::script('js/bootstrap.min.js')}}"
Mi Primer Ciclo MVCModelo-Vista-Controlador
@jlinformatico
Estructura del proyecto
● app● config
database.php● database
migrationsseeds
● modelsVendedor.phpProducto.php
● controllersVendedorController.phpProductoController.php
● viewsinicio.blade.phpplantilla.blade.phpvendedorproducto
● routes.php
Creamos la tabla vendedor
● app/database/migrations/
Crea el modelo clase Vendedor
● app/models/Vendedor.php
Implementar la función agregarVendedor
Crea el controlador VendedorController
● app/controllers/VendedorController.php
Prepara el router
● app/routes.php
Definimos la plantilla base
● app/views/plantilla.blade.php
Crea la vista que liste a los vendedores
● app/views/vendedor/list.blade.php
Gracias :)@jlinformatico