0% encontró este documento útil (0 votos)
121 vistas62 páginas

Desarrollorpidodeappswebconlaravel 141112213502 Conversion Gate02

Este documento proporciona una introducción a Laravel, un popular framework PHP. Explica brevemente qué es Laravel, su filosofía de desarrollo simple y expresivo, y algunas de sus características clave como Eloquent ORM, Blade templates, Artisan CLI y Composer. También cubre conceptos fundamentales como MVC, POO y control de versiones necesarios para trabajar con Laravel de manera efectiva.

Cargado por

efarfan
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
121 vistas62 páginas

Desarrollorpidodeappswebconlaravel 141112213502 Conversion Gate02

Este documento proporciona una introducción a Laravel, un popular framework PHP. Explica brevemente qué es Laravel, su filosofía de desarrollo simple y expresivo, y algunas de sus características clave como Eloquent ORM, Blade templates, Artisan CLI y Composer. También cubre conceptos fundamentales como MVC, POO y control de versiones necesarios para trabajar con Laravel de manera efectiva.

Cargado por

efarfan
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 62

#DevHangout

Laravel for Dummies

Desarrollo Rápido de Apps Web con Laravel


/ jorlive @jlinformatico
Mi Perfil

i o L i na r es Ver a
Jorge Anton
Desarrolador Backend
Laravel & 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-decoded
Web:

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-S
tarter-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 DE
Elementary OS
Trisquel
Fedora
Debian
ArchLinux
CentOS
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 serve
localhost: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 Laravel
Mis primeros pasos

@jlinformatico
Estructura del proyecto
http://blog.devacademy.la/post/95503250161/tutorial-laravel-conociendo-la-estructura-de-un.


app ●
bootstrap
commands ●
public
config ●
vendor
controllers ●
composer.json
database
lang
models
start
storage
test
views
filters.php
routes.php
Modelos
Persistencia, 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/migrations
Contamos con 2 métodos
up() 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

<?php
class 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


Controladores
Rutas, 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


Vistas
Blade, 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 MVC
Modelo-Vista-Controlador

@jlinformatico
Estructura del proyecto

● app
● config

database.php
● database

migrations
seeds
● models

Vendedor.php
Producto.php
● controllers

VendedorController.php
ProductoController.php
● views

inicio.blade.php
plantilla.blade.php
vendedor
producto
● 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

También podría gustarte