Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Laravel {en Plan Ceibal}

Martin
August 08, 2015

Laravel {en Plan Ceibal}

PHPday.uy 2015

Martin

August 08, 2015
Tweet

Other Decks in Technology

Transcript

  1. Laravel • MVC • Primera versión junio de 2011 •

    Creado como alternativa a CodeIgniter • Actualmente: v5.1 ◦ LTS (cada 2 años) ▪ 2 años de bugs ▪ 3 de parches de seguridad
  2. Composer • getcomposer.org • Package manager (gestor de paquetes) •

    Forma más fácil de instalar Laravel • Gestionar las dependencias de nuestra aplicación • No es propio de Laravel
  3. Composer • composer.json ◦ Componentes requeridos (paquetes) ◦ “Autoload” de

    clases ◦ Repositorios privados • Consola: ◦ composer update ◦ composer require <package>
  4. Artisan • Borrar el cache de la aplicación • Modo

    mantenimiento • Migrations • Servidor web interno • Thinker (consola interactiva) • Routes (ver rutas y métodos actuales)
  5. Entornos de configuración • Laravel 4: directorios y archivos •

    Laravel 5: .ENVs • Ambientes de testing, desarrollo, producción • Merge de configuraciones
  6. Routes & Controllers Route::get('/', function () { return 'Hello World';

    }); Básico Route::group(['middleware' => 'auth'], function () { Route::get('/', function () { // Uses Auth Middleware }); Route::get('user/profile', function () { // Uses Auth Middleware }); }); Grupos Route::get('user/{id}', function ($id) { return 'User '.$id; }); Parámetros Route::controller('users', 'UserController'); “Implicit” • public function getIndex() • public function getShow($id) • public function getProfile() • public function postProfile()
  7. Base de datos • Distintos drivers: MySQL, SQLite, Postgres •

    Múltiples conexiones • Eloquent (ORM) • Query Builder
  8. Eloquent • Un modelo representa una tabla • Definir relaciones

    • firstOrCreate y firstOrNew • Timestamps • Scopes
  9. Eloquent :: Operaciones básicas $users = User::all(); $user = User::find(1);

    $user = new User; $user->name = 'John'; $user->save(); $user = User::find(1); $user->email = '[email protected]'; $user->save(); $user = User::find(1); $user->delete(); class User extends Eloquent { public function phone() { return $this->hasOne('Phone'); } } $phone = User::find(1)->phone; Listar Crear Actualizar Borrar Relaciones
  10. Query Builder $usuarios = DB::table('usuarios')->get(); $mujeres = DB::table('personas')->where('genero', 'mujer')->first(); $departamentos_ids

    = DB::table('departamentos')->lists('id'); DB::table('users') ->select('users.id', 'contacts.phone', 'orders.price') ->join('contacts', 'users.id', '=', 'contacts.user_id') ->join('orders', 'users.id', '=', 'orders.user_id') ->get();
  11. Migrations & Seeds • Migrations: “control de versiones” de bases

    de datos • php artisan migrate • Fundamental en el deploy
  12. Authentication if(Auth::attempt([user => $user, 'pass' => $pass])) { return redirect('home');

    } if(Auth::attempt([user => $user, 'pass' => $pass, 'estado' => 1])) { return redirect('home'); } if (Auth::check()) { # El usuario ya está logueado ... } Auth::logout(); $usuario = User::where('documento', 123456789)->first(); Auth::login($usuario);
  13. Composer :: Cliente CAS • composer.json ◦ "xavrsl/cas": "1.2.*" •

    config/app.php ◦ 'Xavrsl\Cas\CasServiceProvider', ◦ 'Cas' => 'Xavrsl\Cas\Facades\Cas', • php artisan vendor:publish • Cas::authenticate(); • Cas::getCurrentUser();
  14. Composer :: Más información • getcomposer.org ◦ instalación y documentación

    • packalyst.com ◦ paquetes exclusivos de Laravel • packagist.org ◦ paquetes de composer
  15. Extendiendo por Ceibal • Paquetes de composer ◦ API de

    Google Apps ◦ Generador de usuarios ◦ Gestión de usuarios en CAS • Comandos artisan ◦ Cargas diarias de información ◦ Exportar información a plataformas