Web

Laravel

Laravel est un langage informatique très similaire à Symfony pour créer des sites internet. Dans cet article, nous allons voir comment installer Laravel et quelques astuces et fonctionnalités ! La documentation Laravel est très bien réalisée : https://laravel.com/docs/5.5.

Installation de Laravel

Au préalable : installer Composer

Le plus simple est de passer par Composer, un logiciel d’installation via terminal (bash).

Windows :  Télécharger et installer Composer à cette adresse :  https://getcomposer.org/Composer-Setup.exe

Linux : Dans le terminal (bash) taper la commande :

php r “copy(‘https://getcomposer.org/installer’, ‘composer-setup.php’);” php r “if (hash_file(‘SHA384’, ‘composer-setup.php’) === ‘669656bab3166a7aff8a7506b8cb2d1c292f042046c5a994c43155c0be6190fa0355160742ab2e1c88d40d5be660b410’) { echo ‘Installer verified’; } else { echo ‘Installer corrupt’; unlink(‘composer-setup.php’); } echo PHP_EOL;”

Cette commande téléchargera le fichier d’installation de Composer

– Puis lancer l’installation :

php composersetup.php installdir=bin filename=composer

Installation de Laravel via Composer

Lancer la commande dans le terminal :

composer global require “laravel/installer”

Création du projet

Dans un terminal, lancer (à la place de NomDeLApplication, mettez y le nom de votre application) :

composer create-project –prefer-dist laravel/laravel NomDeLApplication

Configuration

Tous les fichiers nécessaire au paramétrage de Laravel se trouvent dans le dossier config. 

Configuration de la BDD

Laravel permet la génération automatique des tables de votre BDD vous n’aurez qu’à créer uniquement la base de donnée dans phpMyadmin.

Configurez votre BDD (base de donnée) dans config/database.php.env et .env.exemple

Astuce : 

Retirer le mb4 dans config/database.php, pour ne pas avoir d’erreur :

‘charset’ => ‘utf8mb4‘,
‘collation’ => ‘utf8mb4_unicode_ci’,

Création de la BDD

Laravel permet de créer simplement et rapidement la BDD. Dans database/migration, nous trouverons un fichier correspondant à une table. Vous trouverez le complément d’information dans la documentation Laravel des migrations.

On les génère via le terminal (à la place de users, on y mettra le nom de la table) :

php artisan make:migration create_users_table

Migrations

Création d’une table :

Schema::create(‘article’, function (Blueprint $table) {

$table->increments(‘id’);
$table->string(‘title’);
$table->text(‘content’);
$table->date(‘datePublication’);
$table->boolean(‘isBonus’);
$table->boolean(‘draft’);
$table->rememberToken();
$table->timestamps();

});

Format courant de champs :

  • Booléen : $table->boolean('confirmed');
  • Chaîne de caractère $table->char('name', 100); (nom, nombre de caractère) ou $table->longText('description');
  • Date$table->date('created_at');
  • Auto-incrémentation$table->increments('id');
  • Entier :$table->integer('votes');
  • Texte$table->longText('description'); ou $table->text('description');
  • Date de création et mise à jour du fichier$table->timestamp('added_on');

Ceci sont les plus courant format de champs utilisés, voir la documentation pour connaitre les autres.

Elles se composent ainsi :Clés étrangères :

$table->integer(‘idUser‘)->unsigned();
$table->foreign(‘idUser‘)->references(‘id‘)->on(‘users‘);

Décomposons un peu ce code :

$table->integer(‘idUser‘)->unsigned();

Dans cette première ligne, on dit qu’on veut une clé étrangère dans notre table qui s’appelle idUser.

$table->foreign(‘idUser‘)->references(‘id‘)->on(‘users‘);

Dans cette seconde ligne, on dit que notre clé étrangère idUser renvoie vers la table users dont le champ est id.

Ces clés étrangères peuvent être dans le Schema::create(‘article’, function (Blueprint $table).

Double clé primaire

Pour faire simple c’est deux clés étrangères dans une table ayant que ça pour champs :

Schema::create(‘articletag’, function (Blueprint $table) {

$table->integer(‘idTag’)->unsigned();
$table->foreign(‘idTag’)->references(‘id’)->on(‘tag’);

$table->integer(‘idArticle’)->unsigned();
$table->foreign(‘idArticle’)->references(‘id’)->on(‘article’);

});

 

Génération de la BDD

Une fois la base de donnée créée dans les migrations, on lance via le terminal :

php artisan migrate

Création d’une page

Routes

Dans routes/web.php, vous pouvez créer vos routes. Une route sert de passerelle entre votre views (page) et votre controller. Une route peut servir à exécuter un formulaire par exemple ou simplement à rediriger vers une views !

Route::post(‘/register‘,

[

“as” => “url_to_register“, “uses” => “Auth\RegisterController@register

]

);

Par exemple, cette route est une route de validation d’un formulaire d’inscription, c’est à dire, quand on valide, ça nous renvoie vers le controller Register du dossier Auth à la fonction register.  Dans la views, on aura :

<form class=”form-horizontal” method=”POST” action=”{{ route(‘url_to_register‘) }}”>

{{ url(‘/register’) }} ou {{ route(‘url_to_register’) }} sont les racourcis laravel à mettre dans la views pour rediriger (une page ou un formulaire comme ici.

Controllers

Dans app/Http/Controllers, on trouve tous nos controllers.

public function url_to_registerPage(){

return view(‘inscription‘);

}

Voici un exemple de fonction pour afficher une page. Donc en mettant {{ route(‘url_to_registerPage’) }} ou {{ url(‘/inscription’) }}, on arrivera sur notre views (page de notre formulaire d’inscription).

Vous pouvez ajouter plus d’action avec la documentation des routes.

Views

resources/views rassemble toutes vos pages. C’est ici que vous déciderez de ce que l’utilisateur va voir ! (page de documentation des blades)

Template

Vous pouvez créer un template rassemblant votre header et votre footer sans avoir à les remettre dans toutes les pages et ainsi en cas de changement, ne changer qu’une page !

Notre views template layouts.app :

<html>

<head>

<title>App Name – @yield(‘title’)</title>

</head>

<body>

@section(‘sidebar’)
This is the master sidebar.
@show

@yield(‘content’)

</body>

</html>

Ce qui donne dans une page normale :

@extends(‘layouts.app’)

@section(‘title’, ‘Page Title’)

@section(‘sidebar’)
@parent

<p>This is appended to the master sidebar.</p>
@endsection

@section(‘content’)
<p>This is my body content.</p>
@endsection

Ainsi @yield permet d’insérer une @section de contenu à cet endroit. Le @extends appelant le template.

Insérer le contenu de la BDD

Dans la route :

 public function salon_view(){

$salon = Salon::all();
return view(‘salons’)->with(‘salons’, $salon);

}

On insérera le contenu de la BDD :

@foreach($salons as $salon)

id) }}”>

{{ $salon -> name }}

@endforeach

Le foreach affiche toute la BDD mais on peut aussi en afficher qu’une partie avec une requête.

— CONTROLLER —

public function profile(Request $rq){

$user = User::where(‘id’, “=”, $rq->session()->get(‘id_user’))->first();
return view(‘profile’)->with(‘user’, $user);

}

 

— VIEWS —

{{ $user -> lastname }}

On se passe du foreach mais on garde quand même l’intérieur !

 

Nous avons fait globalement le tour des fonctionalités de Laravel. Le prochain article portera sur la création de connexion, inscription et mot de passe oublié !

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.