Sélectionner une page


Photo de profil de Luka Abazovic Hacker Noon

@lukapgLuka Abazovic

Développeur Laravel / VueJS. J’aime construire des projets parallèles.

Au cours des dernières années, j’ai participé à la création de plusieurs projets de démarrage, qui ont tous été créés en tant que MVP (produit le plus viable) le plus rapidement possible. Différents projets signifiaient que je travaillais avec différentes technologies tout en travaillant, notamment Ruby on Rails, NodeJS et CodeIgniter. Toutes ces technologies sont excellentes et ont finalement fait le travail, mais j’ai toujours pensé que les choses de base pouvaient être faites beaucoup plus facilement et que je devrais trouver quelque chose qui me permettrait de prototyper plus rapidement.

Entre Laravel. Un framework PHP basé précisément sur l’idée de jeter les bases afin de pouvoir se concentrer sur la construction du cœur du produit. Être un framework PHP était parfait pour moi car j’avais une vaste expérience avec le langage, mais PHP n’était pas mon langage préféré pour mes projets. Tout cela a changé avec Laravel. Je vais décrire quelques raisons clés pour lesquelles on devrait considérer le framework Laravel lors de la création d’une application Web MVP.

Authentification des utilisateurs prête à l’emploi

Laravel est livré avec une authentification utilisateur préconfigurée. C’est idéal pour les situations où vous souhaitez simplement tester une idée et ne voulez pas passer des jours à installer un système d’authentification. Cela signifie que vous bénéficiez de toutes les fonctionnalités d’authentification de base – enregistrement de l’utilisateur, connexion, vérification des e-mails, récupération de mot de passe, etc.

La gestion des détails de l’utilisateur actuellement connecté peut être fastidieuse dans PHP classique. Avec Laravel, vous pouvez accéder aux détails de l’utilisateur actuel de n’importe où dans votre application, aussi facilement comme suit:

Laravel propose également le package Socialite qui vous permet d’authentifier les utilisateurs via différents réseaux sociaux et webistes comme Facebook, Twitter, Github, Google etc.

Routage facile

La façon dont Laravel gère le routage est claire et simple. Voulez-vous créer des itinéraires pour votre application Web? Ils sont tous contenus dans un seul fichier d’itinéraire web.php. Voulez-vous configurer des routes API? Vous l’avez deviné, api.php est l’endroit où aller. Une fonction particulièrement utile du routage Laravel est le regroupement. Par exemple, imaginez un scénario dans lequel vous souhaitez que certaines pages de votre application ne soient accessibles qu’aux utilisateurs authentifiés de votre site Web. Au lieu de les définir tous séparément, tous ces itinéraires de page peuvent simplement être regroupés à l’aide du middleware d’auth, qui garantit qu’ils ne sont accessibles qu’aux utilisateurs authentifiés:

Route::group(['middleware' => 'auth'], function () {
    Route::get('/settings', function ()    {
        // Uses Auth Middleware
    });
    Route::get('/profile', function () {
        // Uses Auth Middleware
    });
});

ORM élaboré

L’ORM (Object Relational Mapping) de Laravel s’appelle Eloquent et est très puissant. Il simplifie toutes les opérations de base de données que vous devez effectuer dans votre application. Étant donné que Laravel est basé sur une architecture MVC (Model-View-Controller), lorsque Eloquent est utilisé, chaque table de base de données a un modèle correspondant (le M dans MVC) qui est utilisé pour interagir avec cette table. Prenons un exemple de récupération de tous les enregistrements de la table de facturation (représentée par le modèle de facture) dans notre application:

$invoices = Invoice::all();

Comme vous pouvez le voir, très facile. Avec Query Builder, vous pouvez chaîner différentes méthodes pour exécuter des requêtes plus complexes:

$invoices = Invoice::where('active', 1)
               ->orderBy('total')
               ->take(10)
               ->get();

L’interface utilisateur du générateur de requêtes est très intuitive et fluide, vous pouvez donc avoir une compréhension de base de la requête même sans beaucoup de connaissances de la syntaxe SQL. Dans l’exemple ci-dessus, nous sélectionnons toutes les factures actives, les ordonnons en fonction du total du champ, ne prenons que les 10 premiers enregistrements et récupérons ces enregistrements dans une collection Laravel à l’aide de la méthode get.

La collection Laravel est une autre caractéristique fantastique du framework sur laquelle vous pouvez en savoir plus. Il nous fournit un wrapper autour du type de tableau PHP classique que nous pouvons utiliser pour travailler avec des tableaux sans aucun problème. Il est particulièrement utile lorsqu’il est associé à Eloquent. En utilisant notre exemple précédent, supposons que nous voulions supprimer toutes les factures payées de notre sélection. Essentiellement, filtrez-les de manière à n’inclure que les factures impayées. Nous pourrions utiliser la méthode de rejet de Collection:

$activeInvoices = $invoices->reject(function ($invoice) {
    return $invoice->paid;
});

Comme je l’ai mentionné précédemment, l’interface utilisateur intuitive qu’Eloquent nous donne pour travailler avec des bases de données est juste une joie et extrêmement pratique lorsque vous devez vous concentrer sur la création rapide d’un MVP et ne pas approfondir la syntaxe SQL.

Moteur de création de modèles de lame

Laravel vous permet de créer vos vues efficacement et rapidement en utilisant son propre moteur de gabarit de lames. Blade regorge d’instructions et de fonctionnalités utiles qui vous permettent de prototyper rapidement des pages dans votre application sans écrire une logique de présentation complexe qui serait requise sans ces fonctionnalités. Par exemple, supposons que vous deviez afficher divers messages pour les invités et les utilisateurs authentifiés sur votre page. Vous pouvez utiliser les directives auth et guest de Blade:

@auth
    <p>Welcome to the dashboard!</p>
@endauth

@guest
    <p>Please sign in</p>
@endguest

Avec Blade, nous pouvons également facilement utiliser des boucles dans nos vues. Itérer sur des tableaux est assez simple:

@foreach ($invoices as $invoice)
    <p>Invoice number {{ $invoice->id }}</p>
@endforeach

Avez-vous besoin d’afficher un message lorsque le tableau est vide? C’est un scénario parfait pour la directive Forelse unique de Blade. Vous pouvez parcourir le tableau et utiliser la directive vide pour afficher le contenu si le tableau est vide:

@forelse ($invoices as $invoice)
    <li>{{ $invoice->title }}</li>
@empty
    <p>No invoices yet!</p>
@endforelse

Blade nous permet également de créer des vues maître-enfant, de définir des sections pouvant étendre les vues enfants, de définir des composants réutilisables pouvant être utilisés dans de nombreuses vues, et bien plus encore. Un tel moteur de modèle est un outil parfait pour créer votre couche de présentation le plus rapidement possible.

Intégration rapide des e-mails

Lors de la création d’un MVP, en particulier s’il s’agit d’un produit SaaS, l’intégration de la messagerie électronique via un service de messagerie transactionnel est un must dès le départ. Laravel propose une API de messagerie simple pour l’envoi d’e-mails avec des pilotes prédéfinis pour Mailgun, Postmark, Amazon SES ou un serveur SMTP personnalisé. Pour commencer, il vous suffit de renseigner les détails de configuration. Laravel facilite également la configuration de Mailtrap, un service de test de la messagerie de votre application avant d’utiliser un service payant en production.

Non seulement Laravel nous permet de nous connecter facilement à divers fournisseurs de messagerie, mais il nous équipe également de Mailables, une fonctionnalité qui nous permet de définir tout type de courrier électronique que nous utilisons dans nos applications. Avec Mailables, nous pouvons définir des modèles de vue dans Laravel comme nous le ferions pour n’importe quelle page et les utiliser comme modèle de courrier électronique. Chaque mailable est créé avec la commande make: mail:

php artisan make:mail InvoicePaid

Dans cet exemple, nous voulons définir un e-mail qui doit être envoyé à un client en tant que message de remerciement à chaque fois qu’une facture est payée. Mailable propose une interface utilisateur intuitive qui nous permet d’enchaîner des méthodes comme Eloquent et de définir exactement ce que ce type d’email doit faire. Dans la classe InvoicePaid générée pour nous, nous pouvons configurer l’action e-mail dans la méthode de construction:

/**
 * Build the message.
 *
 * @return $this
 */
public function build()
{
    return $this->from('example@example.com')
                ->view('emails.invoice.paid')
		->attach('/path/to/file');
}

Chaque fois qu’une facture est payée, Laravel envoie un email avec le modèle défini par la méthode View en utilisant une adresse définie par la méthode from et une pièce jointe définie par la méthode Attach. Assez facile. Chaque fois que nous voulons envoyer ce type d’e-mail, nous pouvons le faire à partir du contrôleur:

Mail::to($email)->send(new InvoicePaid);

Ce ne sont que les bases. Avec des fonctions avancées, les mailables peuvent être connectés afin d’être appelés sur certains événements, d’utiliser des données dynamiques, différents formats de modèles et plus encore.

Sanctuaire

Souvent, nous devons créer une SPA (application à page unique) pour notre backend API Laravel. Le problème le plus courant lors de la création d’un SPA est la création d’un système d’authentification basé sur des jetons. Heureusement, le package Laravel appelé Sanctum offre un système d’authentification ultra-léger pour les SPA et les applications mobiles.

Sanctum fournit un moyen simple d’authentifier les applications avec un côté qui doit communiquer avec nos API Laravel. Sanctum n’utilise aucun jeton. Au lieu de cela, Sanctum utilise l’authentification de session intégrée basée sur les cookies de Laravel. Cela signifie essentiellement que vous pouvez utiliser le système d’authentification standard de Laravel pour authentifier les utilisateurs de votre SPA sans avoir à stocker et mettre à jour les jetons côté client. Une sorte de magie et un gain de temps énorme lors de la construction d’un MVP!

Écosystème vivant

L’écosystème Laravel est peut-être l’environnement le plus riche de tous les langages de trame. Tant de packages et d’outils officiels pour différentes tâches nous permettent aux développeurs de gagner beaucoup de temps à créer des produits et de se concentrer sur ce qui est important. Pour ne citer que quelques-uns des packages et outils Laravel les plus populaires:

  • Caissier – intégration de la facturation des abonnements (intégrez simplement Stripe dans votre application)
  • Socialite – Authentifiez les utilisateurs à l’aide de divers réseaux sociaux et sites Web
  • Crépuscule – BrowsertestTelescope – Assistant de débogage
  • Echo – événements en temps réel
  • Scout – Ajoutez une recherche en texte intégral à votre application

Et bien plus. Avec Laravel, pratiquement toutes les conceptions d’application majeures qu’un développeur pourrait avoir sont couvertes dans un package officiel.

Documentation et communauté

Enfin, Laravel propose une documentation parmi les meilleures dans tous les langages ou frameworks. Chaque aspect et chaque fonctionnalité du langage sont décrits et présentés dans la documentation, dans laquelle les cas d’utilisation fréquemment utilisés sont présentés de manière claire et compréhensible. Il est constamment mis à jour avec chaque version majeure de Laravel et il ne fait que s’améliorer.

La communauté de développeurs Laravel est nombreuse et grandit chaque jour car le framework est actuellement le framework PHP le plus populaire du marché. Des centaines de questions et de problèmes les plus courants sont déjà résolus dans diverses communautés et forums en ligne. Vous pouvez obtenir de l’aide pour tout ce qui vous bloque.

Dans cet esprit, j’ai créé une ressource en ligne qui, espérons-le, ajoutera de la valeur à la communauté des développeurs Laravel (et bientôt aussi aux développeurs). Chaque fois que vous essayez de créer un excellent produit, vous cherchez toujours des moyens d’améliorer les performances et l’efficacité de votre code. Bien qu’il existe d’excellents tutoriels disponibles sur de nombreux sites Web, il me manquait un seul endroit pour des conseils Laravel courts et simples qui expliquent essentiellement comment votre code Laravel pourrait être meilleur et plus efficace par petites étapes. Le site Web est alors appelé LaravelBit. Parties pratiques et petites du code Laravel, publiées 3 fois par semaine. Et totalement gratuit.

Mots clés

Rejoignez Hacker Noon

Créez votre compte gratuit pour débloquer votre expérience de lecture personnalisée.



Source link

Recent Posts