Desarrollorpidodeappswebconlaravel 141112213502 Conversion Gate02
Desarrollorpidodeappswebconlaravel 141112213502 Conversion Gate02
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)
@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?
●
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
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
●
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
https://github.com/andrewelkins/Laravel-4-Bootstrap-S
tarter-Site
● Pongo CMS v1 (Laravel 3) http://pongocms.com
https://github.com/wardrobecms/wardrobe
● CodeSleeve https://github.com/CodeSleeve/platform
CMS en Laravel
En Desarrollo:
● PongoCMS v2 http://pongocms.com
● Larapress: https://github.com/larapress-cms/larapress
● Coanda: https://github.com/CoandaCMS/coanda-core
● PyroCMS v3 https://www.pyrocms.com/
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
●
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
@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
● Insertamos código
● Configuramos DatabaseSeeder.php
datos afectarán.
● Las relaciones entre objetos creadas, estarán
● 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
@jlinformatico
Controllers
● app/controllers
● http://laravel.com/docs/4.2/controllers
● app/routes.php
● http://laravel.com/docs/4.2/routing
RESTful Routing
@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
{{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