Professional Documents
Culture Documents
Clase 1
Objetos 101
Qu es PHP?
Lenguaje de Scripting
Tipos dinmicos
Administrador de Dependencias
Composer
Composer
$ composer init
$ composer require vendor/package:~X.Y
$ composer install
$ composer update [vendor/package]
Objetos
Un objeto es una mquina de
software que contiene datos y
expone operaciones
Bertrand Meyer
Objetos (Objects)
Operaciones: Mensajes
Qu puede hacer
Qu necesita
Cmo lo hace
Qu responder
En qu estado est
hagamos cdigo!
Pruebas
Pruebas (Testing)
Define la funcionalidad
Garantiza que la implementacin es correcta
Evita futuros problemas
Pruebas (Testing)
hagamos cdigo!
pruebas!
Patrones de diseo
Entidades
Entidades (Entities)
hagamos cdigo!
Objetos de Valor
hagamos cdigo!
Resumen
Resumen
Objetos
Composer
Entidades
Dependencias
Autoloading
Identidad
Modelo del
problema
Estado
Mensajes
Colaboracin
Objetos de Valor
Testing
Herencia
Responsabilidad Definicin
Id <=> estado
Comprobacin Inmutables
Mantenimiento
Hasta la prxima!
PHP y Laravel
Clase 2
PHP en la web
Qu es la web?
Protocolo HTTP
Lenguaje HTML
Arquitectura
Cliente - Servidor
Patrones de Arquitectura
Modelo Vista
Controlador (MVC)
Separacin de responsabilidades
Modelo: Lgica de negocio (Modelo de Dominio)
Vista: Presentacin visual
Controlador: Coordina las acciones del usuario
Controlador
Controlador (Controller)
hagamos cdigo!
Vista
Vista (View)
hagamos cdigo!
Modelo
Modelo (Model)
hagamos cdigo!
Colecciones
Colecciones (Collections)
hagamos cdigo!
Resumen
Resumen
Web
Controladores
Modelo
Problema
Comunicacin
Idioma, jerga
MVC
Colecciones
Vista
Patrn de Arq.
Representa la
Separacin de
grfica
Responsabilidad Poca lgica
Contiene objs.
Mensajes ms
claros
Hasta la prxima!
PHP y Laravel
Clase 3
Buenas Prcticas
Patrones de Arquitectura
Capas (Layers)
Capas (Layers)
Capas (Layers)
Http
Controllers
Views
Consola
Commands
API
Controllers
Transformers
Modelo de dominio
Entities
Services
Value Objects
Events Exceptions
Infraestructura - Datos
Repositories (base de datos)
Adapters (APIs)
hagamos cdigo!
Servicios
Servicios (Services)
Coordinadores de dominio
No tienen estado (stateless)
Se comunica con infraestructura
Responde pedidos de capas superiores
hagamos cdigo!
Persistencia
Bases de datos
Bases de datos
Relacionales (SQL)
MySQL
Oracle
PostgreSQL etc...
No relacionales (NoSQL)
MongoDB
Redis
Cassandra
etc...
Bases de datos
hagamos cdigo!
Repositorios
Repositorios (Repositories)
hagamos cdigo!
Errores y
Excepciones
hagamos cdigo!
errores!
Eventos
Eventos (Events)
hagamos cdigo!
Resumen
Capas
Base de datos
Excepciones
Define roles
Separacin de
arquitectura
Almacenar
Buscar
Persistencia
Detiene flujo
Recuperacin
Notificacin
Servicios
Repositorios
Eventos
Coordinacin
Comunicacin
Sin estado
Acceso datos
Coleccin
Separa capas
Hecho pasado
Efectos
secundarios
Gracias
@guiwoda
/guiwoda
Laravel
Clase 1
Fundamentos
Qu es Laravel?
Laravel es un framework moderno de PHP
Objetivos
La base
Composer
Componentes de Symfony
Swiftmail
Monolog
Carbon
PSR-7
Y ms ...
Principales Caractersticas
Artisan CLI
Cache
Controladores
Eventos
Eloquent ORM
Autenticacin
Migraciones
Queues
Blade templates
ACL
Poderoso Router
Poderoso contenedor
Ecosistema
Homestead
Support
Cashier y Socialite
Elixir
Forge
Envoyer
INSTALACIN
Mquinas Virtuales
Y
Homestead
Configuracin
Rutas
Rutas
Mtodos HTTP (GET, POST, PUT, PATCH, DELETE)
Configuracin de parmetros
Requeridos
Opcionales
Regex
Agrupadas
Por nombre
HAGAMOS RUTAS!
Controladores
Controladores
hagamos cdigo!
Blade
Blade
Sintaxis
{{ variable }} {{{ variable_crudo }}} @{{ javascript }}
@extend(layout)
@section(lateral) @stop
@if(true) @else @endif
@foreach($vars as $var) @endforeach
@unless(false) @endunless
@include(parcial)
hagamos cdigo!
Elixir
Artisan
Lnea de comando
Crear clases con facilidad
Crear migraciones de bases de datos
Configura y controla Queues
Configura y limpia Cache
Llenar la base de datos con datos de prueba
Acceso a la aplicacin por medio de la consola
Migraciones
Migraciones
hagamos cdigo!
Modelos y Eloquent
Modelos y Eloquent
API Comn para varias bases de datos
Simple ActiveRecord
Cada tabla tiene su modelo
Operaciones Select, Insert, Update, Delete
Definen relaciones entre ellos
Uno a uno
Uno a muchos
Muchos a muchos
Relaciones
Colecciones
Colecciones
Validacin
Autenticacin
Service Container
Service Container
Control de dependencias
Inyeccin de dependencias
Mltiples formas de crear instancias
Bind
Singleton
Instance
hagamos cdigo!
Repositorios
Eventos
Eventos
hagamos cdigo!
Queues
Queues
hagamos cdigo!
Tests
Test
Precargado con PHPUnit
Herramientas para test de funcionalidad
Model Factory para crear mocks de modelos
Migrar la base de datos
Esperar eventos
Y ms
hagamos cdigo!
Comandos
Paquetes
Deploy
Gracias
@joecohens
/joecohens