@cesarlarsson
@cesarlarsson
- Web Framework Open source sobre PHP
- MIT license
- Utiliza en patrón de diseño MVC
- Utiliza composer para instalar sus dependencias.
@cesarlarsson
@cesarlarsson
@cesarlarsson
@cesarlarsson
@cesarlarsson
@cesarlarsson
Manejador de Dependencias para PHP. Composer te permite declarar las librerías de las cuales tu proyecto depende o necesita. Con esto al ejecutar el fichero el las instalara automaticamente.
Equivalente de NPM o Bower para PHP :-)
@cesarlarsson
curl -sS https://getcomposer.org/installer | phpphp -r "readfile('https://getcomposer.org/installer');" | phpO
1- Creamos nuestro archivo composer.json
{
"name":"smartrabbit/comprimir_imagen",
"type":"project",
"author":[
{
"name":"cesar suarez",
"email":"cesar@smartrabbit.co"
}
],
"require":{
"php":">=5.3.2",
"nyholm/zebra-image": "1.0.0"
},
"autoload":{
"psr-4":{
}
}
}2- Nuestra librerias/clases la referenciamos dentro en el autoload (Usando PSR-4)
{
"name":"smartrabbit/comprimir_imagen",
"type":"project",
"author":[
{
"name":"cesar suarez",
"email":"cesar@smartrabbit.co"
}
],
"require":{
"php":">=5.3.2",
"nyholm/zebra-image": "1.0.0"
},
"autoload":{
"psr-4":{
"App\\":"clases/"
}
}
}3- Ejecutamos en al consola
composer install4- Para referenciar las autocargas ejecutamos en la consola
composer dumpautoload@cesarlarsson
Es una herramienta para desarrolladores que facilita la creación de entornos virtuales para desarrollo. En Vagrant podemos instalar y configurar software en una máquina virtual para que podamos simular que estamos en el servidor en el que se alojará la aplicación
@cesarlarsson
@cesarlarsson
1- Instalar Virtual Box
2- Descargar e instalar Vagrant
3- Encontrar la caja deseada
https://geekytheory.com/tutorial-vagrant-1-que-es-y-como-usarlo/
@cesarlarsson
@cesarlarsson
@cesarlarsson
@cesarlarsson
@cesarlarsson
Los namespaces solucionan:
@cesarlarsson
<?php
header('Content-type: text/plain');
require_once('spider.sample.php');
echo \Spider\Sample\MYCONST . PHP_EOL;
echo \Spider\Sample\MyFunction() . PHP_EOL;
echo \Spider\Sample\MyClass::WhoAmI() . PHP_EOL;<?php
// Código de la sección Sample del proyecto Spider
namespace Spider\Sample;
const MYCONST = 'Spider\Sample\MYCONST';
function MyFunction() {
return __FUNCTION__;
}
class MyClass {
static function WhoAmI() {
return __METHOD__;
}
} @cesarlarsson
Los traits (rasgos) son un mecanismo de reutilización de código en lenguajes de herencia simple, como PHP. El objetivo de un trait es el de reducir las limitaciones propias de la herencia simple permitiendo que los desarrolladores reutilicen a voluntad conjuntos de métodos sobre varias clases independientes y pertenecientes a clases jerárquicas distintas
@cesarlarsson
class ClaseUno extends BaseUno
{
...
}
class ClaseDos extends BaseDos
{
...
}Para usar una funcionalidad comun entre estas dos clases que extienden de dos clases diferentes usamos un Trait
@cesarlarsson
class ClaseUno extends BaseUno
{
use feed;
}
class ClaseDos extends BaseDos
{
use feed;
}trait feed {
private static $instance;
public static function getFeed() {
if ( is_null( self::$instance ) ) {
self::$instance = new self();
}
return self::$instance;
}
}http://php.net/manual/es/language.oop5.traits.php
@cesarlarsson
Los generadores proporcionan un modo fácil de implementar iteradores simples sin la sobrecarga o complejidad de implementar una clase que implemente la interfaz Iterator.
<?php
function gen_one_to_three() {
for ($i = 1; $i <= 3; $i++) {
// Observe que $i es preservado entre yields
yield $i;
}
}
$generator = gen_one_to_three();
foreach ($generator as $value) {
echo "$value\n";
}
?>@cesarlarsson
vagrant box add laravel/homesteadClonamos Homestead (creamos una carpeta en el home para ello)
git clone https://github.com/laravel/homestead.git HomesteadCorremos los siguiente para crear el archivo de configuracion homestead.yaml
bash init.shInstalmos nuestra maquina virtual
Homestead edit
Homestead up
Homestead ssh
Homestead provision
Comandos Basicos
1. De manera global
composer global require "laravel/installer=~1.1"laravel new test2. En el proyecto
composer create-project laravel/laravel --prefer-dist
composer create-project laravel/laravel spiderproject
composer create-project laravel/laravel spiderproject "~5.0.0" --prefer-dist
Artisan es el nombre de la interfaz de comandos que tiene laravel. Esta provee un gran numero de comandos que ayudan en el proceso de desarrollo de nuestra aplicación.
Esta es impulsada por la consola de Symfony y para mirar los comando disponibles colocamos en nuestro proyecto:
php artisan listEl ORM llamado Eloquent incluido en Laravel prove una hermosa y sencilla implementación de ActiveRecord (registro activo) para trabajar con tu base de datos. Cada tabla de la base de datos tiene un "Modelo" correspondiente, el cual es utilizado para interactuar con esa tabla.
Blade is the simple, yet powerful templating engine provided with Laravel. Unlike other popular PHP templating engines, Blade does not restrict you from using plain PHP code in your views. All Blade views are compiled into plain PHP code and cached until they are modified, meaning Blade adds essentially zero overhead to your application. Blade view files use the.blade.php file extension and are typically stored in the resources/views directory.
Laravel provee un metodo simple para el llenado de las bases de datos para realizar pruebas. Las clases de poblado se almacenan en app/database/seeds. Las clases de poblado pueden tener el nombre que quieras, pero estaría bien seguir un convenio como UserTableSeeder, etc. Por defecto, ya hay definida una clase DatabaseSeeder. Desde esta clase, puedes utilizar el método call para ejecutar otras clases de poblado, permitiéndote así controlar el orden de poblado.
Los HTTP middleware proporcionan un mecanismo de filtrado de las solicitudes HTTP que entran a tu aplicación. Por ejemplo, Laravel incluye un middleware que verifica si un usuario esté autenticado. Si el usuario no está autenticado, el middleware lo redirige a la pantalla de login. Sin embargo, si el usuario está autenticado, el middleware permitirá que la solicitud acceda a la aplicación.
@cesarlarsson
http://laraveles.com/docs/5.1/middleware
Estructura App
Estructura Http
laravel.com
laraveles.com
laracasts.com
styde.net
bootswatch.com