Laravel 5

La nouvelle version de Laravel

  • Laravel 5

    GraphQL et Laravel

    Je pratique la programmation depuis les années 80 et j’ai observé de nombreuses évolutions au fil des années. Actuellement on observe de rapides changements au niveau du frontend : système de design, multiples framewoks, systèmes de composants. Côté backend on s’oriente de plus en plus vers le cloud avec des solutions « élastiques » et malheureusement une hégémonie marquée d’Amazon. Dans cet article mon propos va concerner la communication entre client et serveur qui elle aussi connait des évolutions. De fait, l’API REST (Representational State Transfer) est un standard pour les requêtes HTTP pour faire communiquer un client avec un serveur. Par définition il n’y a pas d’état permanent (stateless). Une requête…

  • Laravel 5

    Un site d’annonces – l’interface utilisateur

    Notre site d’annonces est presque terminé. Il ne nous reste plus qu’à coder l’interface de l’utilisateur. Il doit pouvoir gérer ses annonces (voir celles qui sont en attentes, les actives, prolonger une annonce, la détruire). Il doit aussi avoie accès à ses données personnelles et éventuellement les changer. Pour vous simplifier la vie vous pouvez télécharger le dossier complet pour le code de cet article. C’est d’ailleurs l’état final de ce projet. Un middleware De la même manière qu’on a créé un middleware pour filtrer les administrateurs on va en créer un pour filtrer les utilisateurs : php artisan make:middleware User Avec ce code : public function handle($request, Closure $next)…

  • Laravel 5

    Un site d’annonces – l’administration (2/2)

    Dans cet article nous allons terminer la partie administration du site d’annonces. Il nous reste la gestion des annonces obsolètes et des messages à modérer. Pour vous simplifier la vie vous pouvez télécharger le dossier complet pour le code de cet article. Annonces obsolètes Les routes On doit ajouter des routes pour les annonces obsolètes : affichage des annonces obsolètes ajout d’une semaine à la date limite de publication pour prolonger l’annonce suppression définitive de l’annonce Route::prefix('admin')->middleware('admin')->group(function () { ... Route::prefix('annonces')->group(function () { Route::get('obsoletes', 'AdminController@obsoletes')->name('admin.obsoletes'); ... }); Route::prefix('admin/annonces')->group(function () { Route::middleware('ajax')->group(function () { Route::post('addweek/{ad}', 'AdminController@addWeek')->name('admin.addweek'); Route::delete('destroy/{ad}', 'AdminController@destroy')->name('admin.destroy'); }); }); On place les routes d’ajout et de suppression en dehors du…

  • Laravel 5

    Un site d’annonces – l’administration (1/2)

    Maintenant que la partie client est pratiquement terminée nous allons nous consacrer à l’administration du site. L’administrateur a pour tâche de modérer les annonces et certains messages, d’autre part il doit gérer les annonces obsolètes. Pour vous simplifier la vie vous pouvez télécharger le dossier complet pour le code de cet article. sb-admin-2 Pour ce projet j’ai opté pour sb-admin-2 comme template : Il est basé sur Bootstrap 4 qu’on utilise déjà et je le trouve plutôt esthétique. Vous pouvez télécharger les fichiers à partir du site. Ensuite vous copiez le contenu du dossier scss dans un dossier sb-admin-2 de notre projet : De la même manière on copie le…

  • Laravel 5

    Un site d’annonces – créer une annonce

    Dans cet article nous allons maintenant mettre en place l’intendance pour la création d’une annonce. La principale difficulté va résider dans la gestion des photos. Heureusement pour nous il existe Dropzone, une librairie Javascript qui facilite la mise en place d’un système de glisser-déposer des fichiers. Pour vous simplifier la vie vous pouvez télécharger le dossier complet pour le code de cet article. Dropzone et Intervention image Pour l’intégration de Dropzone dans Laravel je me suis largement inspiré de cet article et de celui-ci. On commence par charger Dropzone avec npm : npm i dropzone --save-dev Pour le fonctionnement de Dropzone il faut prévoir la librairie dans le CSS. Voici…

  • Laravel 5

    Un site d’annonces – annonce et message

    Dans cet article on va voir l’affichage des détails d’une annonce (titre, texte, photos…). On va aussi prévoir qu’un visiteur puisse envoyer un message à l’émetteur de l’annonce pour se mettre en relation avec lui. Pour vous simplifier la vie vous pouvez télécharger le dossier complet pour le code de cet article. La liste des annonces On en est restés avec la possibilité d’obtenir la liste des annonces pour une localisation (région, département, commune) et une catégorie : Mais je ne suis pas très satisfait de l’aspect actuel avce le lien en bleu et le soulignement au survol, j’aimerais quelque chose de plus esthétique. On va ajouter quelques règles dans…

  • Laravel 5

    Un site d’annonces – les annonces

    Dans ce nouvel article on va s’intéresser à l’affichage des annonces. Sur la page d’accueil qu’on a créée dans la précédente étape on a une sélection de la région. On va ajouter la sélection optionnelle du département et de la commune. Selon ces choix on va afficher une liste paginée des annonces correspondantes. On pourra ensuite cliquer sur l’une d’elle pour afficher tous ses détails. Pour vous simplifier la vie vous pouvez télécharger le dossier complet pour le code de cet article. Avertissement : de nombreuses personnes ont eu un souci dans l’affichage des annonces. Après analyse il apparaît qu’un nom de classe que j’ai choisi rentre en collision avec…

  • Laravel 5

    Un site d’annonces – la page d’accueil

    On va poursuivre la construction du site d’annonces en créant la page d’accueil qui va comporter une carte de France interactive avec toutes les régions. On va prévoir une barre de navigation supérieure pour le menu (accueil, connexion/déconnexion, profil, administration…). Il nous faudra aussi un bouton pour la création d’une annonce. Enfin on va remanier et franciser les vues de l’authentification. Pour vous simplifier la vie vous pouvez télécharger le dossier complet pour le code de cet article. Les routes Les routes par défaut sont celles-ci : Route::get('/', function () { return view('welcome'); }); Auth::routes(); Route::get('/home', 'HomeController@index')->name('home'); La ligne Auth::routes(); crée toutes les routes de l’authentification. Si on fait un…

  • Laravel 5

    Un site d’annonces – les données

    Je vous propose un nouveau projet avec Laravel 5.8 consacré aux petites annonces. Il en existe de très nombreux sur la toile dont le plus célèbre est certainement leboncoin. Le but n’est pas d’en faire un clone mais de s’inspirer de sa philosophie pour créer une application simple et efficace. Le but est de faire découvrir le framework Laravel à ceux qui ne le connaissent pas encore et de proposer un cas pratique pour ceux qui veulent le voir en action. Au niveau des fonctionnalités attendues : une interface visuelle pour sélectionner la région une sélection progressive par département et commune la possibilité de déposer une annonce sans créer de…