


Construisez une application React avec une fin de Laravel Restful: Partie 1, API Laravel 9
Mar 01, 2025 am 09:14 AMLaravel et React sont deux technologies de développement Web populaires utilisées pour créer des applications Web modernes. Laravel est en évidence un cadre PHP c?té serveur, tandis que React est une bibliothèque JavaScript c?té client. Ce didacticiel sert d'introduction à Laravel et à React, en les combinant pour créer une application Web moderne.
Dans une application Web moderne, le serveur a un travail limité de gérer le back-end via une API (interface de programmation d'application). Le client envoie des demandes à ces points de terminaison et le serveur renvoie une réponse. Cependant, le serveur ne se préoccupe pas de la fa?on dont le client rend la vue, ce qui correspond parfaitement à la conformité du principe des préoccupations de séparation des préoccupations. Cette architecture permet aux développeurs de créer des applications robustes pour le Web et également pour différents appareils.
Dans ce didacticiel, nous utiliserons la dernière version de Laravel, version 9, pour créer une API reversée. Le frontal comprendra des composants écrits en réact. Nous créerons une application de liste de produits ingénieuse. La première partie du tutoriel se concentrera davantage sur les concepts Laravel et le back-end. Commen?ons.
Introduction
Laravel est un framework PHP développé pour le Web moderne. Il a une syntaxe expressive qui favorise la convention sur le paradigme de configuration. Laravel a toutes les fonctionnalités dont vous avez besoin pour commencer avec un projet dès la sortie de la bo?te. Mais personnellement, j'aime Laravel car il transforme le développement avec PHP en une expérience et un flux de travail entièrement différents.
D'un autre c?té, React est une bibliothèque JavaScript populaire développée par Facebook pour créer des applications à une seule page. React vous aide à décomposer votre vue en composants où chaque composant décrit une partie de l'interface utilisateur de l'application. L'approche basée sur les composants a le bénéfice supplémentaire de la réutilisabilité et de la modularité des composants.
Pourquoi Laravel et React?
Si vous développez pour le Web, vous pourriez être enclin à utiliser une seule base de code pour le serveur et le client. Cependant, toutes les entreprises ne donnent pas au développeur la liberté d'utiliser une technologie de son choix et pour de bonnes raisons. L'utilisation d'une pile JavaScript pour un projet entier est la norme actuelle, mais rien ne vous empêche de choisir deux technologies différentes pour le c?té serveur et le c?té client.
Alors, comment Laravel et réagir-ils s'adaptent-ils? Assez bien, en fait. Bien que Laravel ait documenté la prise en charge de Vue.js, qui est un autre framework JavaScript, nous utiliserons React pour le front-end car il est plus populaire.
Prérequis
Avant de démarrer, je vais supposer que vous avez une compréhension de base de l'architecture relante et du fonctionnement de l'API. De plus, si vous avez une expérience préalable dans React ou Laravel, vous pourrez tirer le meilleur parti de ce tutoriel.
Cependant, si vous êtes nouveau dans les deux frameworks, ne vous inquiétez pas. Le tutoriel est écrit du point de vue d'un débutant, et vous devriez pouvoir vous rattraper sans trop de problème. Vous pouvez trouver le code source du tutoriel sur GitHub.
Installation et configuration de votre projet Laravel
Avant de démarrer avec Laravel, assurez-vous d'avoir installé PHP et Composer sur votre machine locale. En effet, Laravel est basé sur PHP et utilise le compositeur pour gérer toutes les dépendances. Lors de l'installation du compositeur sur votre machine, assurez-vous de choisir l'option pour l'ajouter à la variable d'environnement de chemin afin que le compositeur soit accessible à l'échelle mondiale.?
Une fois le compositeur installé, vous devriez pouvoir générer un projet de Laravel frais comme suit:
composer create-project laravel/laravel example-app<br>
Si tout se passe bien, vous devriez être en mesure de servir votre application sur un serveur de développement chez ProductsController Nous avons généré est trouvé dans App / HTTP / Controllers / ProductsController. routes / api.php
avec la nouvelle importation et les routes.<?php<br><br>namespace App\Http\Controllers;<br><br>use Illuminate\Http\Request;<br>use App\Product;<br><br>class ProductsController extends Controller<br>{<br><br> public function index()<br> {<br> return Product::all();<br> }<br><br> public function show(Product $product)<br> {<br> return $product;<br> }<br><br> public function store(Request $request)<br> {<br> $product = Product::create($request->all());<br><br> return response()->json($product, 201);<br> }<br><br> public function update(Request $request, Product $product)<br> {<br> $product->update($request->all());<br><br> return response()->json($product, 200);<br> }<br><br> public function delete(Product $product)<br> {<br> $product->delete();<br><br> return response()->json(null, 204);<br> }<br><br>}<br>Si vous n'avez pas remarqué, j'ai injecté une instance de produit dans les méthodes de contr?leur. Ceci est un exemple de la liaison implicite de Laravel. Laravel essaie de faire correspondre le nom de l'instance du modèle
Product $ Product
avec le nom du segment URI {Product} <pre class="brush:php;toolbar:false">// Include this at the file top:<br>use App\Http\Controllers\ProductsController;<br><br>/**<br>**Basic Routes for a RESTful service:<br>**Route::get($uri, $callback);<br>**Route::post($uri, $callback);<br>**Route::put($uri, $callback);<br>**Route::delete($uri, $callback);<br>**<br>*/<br><br><br>Route::get('products', 'ProductsController@index');<br><br>Route::get('products/{product}', 'ProductsController@show');<br><br>Route::post('products','ProductsController@store');<br><br>Route::put('products/{product}','ProductsController@update');<br><br>Route::delete('products/{product}', 'ProductsController@delete');<br><br><br></pre>. Si une correspondance est trouvée, une instance du modèle de produit est injectée dans les actions du contr?leur. Si la base de données n'a pas de produit, il renvoie une erreur 404. Le résultat final est le même qu'auparavant mais avec moins de code. <p> <code>Product $product
Ouvrez Postman ou VS Code et les points de terminaison du produit doivent fonctionner. Assurez-vous d'avoir le Accepter: Application / JSON <code>{product}
L'en-tête activé. Validation et manipulation des exceptions Accept : application/json
L'intervention NotfoundHTPException

. La classe a principalement deux méthodes: report () <code>NotFoundHTTPException
et render () <strong>. La méthode <code> rapport
est utile pour signaler et enregistrer les événements d'exception, tandis que la méthode de rendu est utilisée pour renvoyer une réponse lorsqu'une exception est rencontrée. Mettez à jour la méthode de rendu pour retourner une réponse JSON: report()
composer create-project laravel/laravel example-app<br>
Laravel nous permet également de valider les demandes HTTP entrantes à l'aide d'un ensemble de règles de validation et de renvoyer automatiquement une réponse JSON si la validation a échoué. La logique de la validation sera placée à l'intérieur du contr?leur. L'objet IlluminateHttpRequest
fournit une méthode valide que nous pouvons utiliser pour définir les règles de validation. Ajoutons quelques vérifications de validation à la méthode du magasin dans app / http / contr?lers / productsController.php .
<?php<br><br>namespace App\Http\Controllers;<br><br>use Illuminate\Http\Request;<br>use App\Product;<br><br>class ProductsController extends Controller<br>{<br><br> public function index()<br> {<br> return Product::all();<br> }<br><br> public function show(Product $product)<br> {<br> return $product;<br> }<br><br> public function store(Request $request)<br> {<br> $product = Product::create($request->all());<br><br> return response()->json($product, 201);<br> }<br><br> public function update(Request $request, Product $product)<br> {<br> $product->update($request->all());<br><br> return response()->json($product, 200);<br> }<br><br> public function delete(Product $product)<br> {<br> $product->delete();<br><br> return response()->json(null, 204);<br> }<br><br>}<br>
Résumé
Nous avons maintenant une API de travail pour une application de liste de produits. Cependant, l'API manque de fonctionnalités de base telles que l'authentification et la restriction de l'accès aux utilisateurs non autorisés. Laravel a une prise en charge prête à l'authentification, et la construction d'une API est relativement facile. Je vous encourage à mettre en ?uvre l'API d'authentification en tant qu'exercice.
Maintenant que nous avons fini avec le back-end, nous allons déplacer notre concentration vers les concepts frontaux. Découvrez le deuxième article de cette série ici:
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Les problèmes et les solutions courants pour la portée de la variable PHP incluent: 1. La variable globale ne peut pas être accessible dans la fonction, et elle doit être transmise en utilisant le mot-clé ou le paramètre global; 2. La variable statique est déclarée avec statique, et elle n'est initialisée qu'une seule fois et la valeur est maintenue entre plusieurs appels; 3. Des variables hyperglobales telles que $ _get et $ _post peuvent être utilisées directement dans n'importe quelle portée, mais vous devez faire attention au filtrage s?r; 4. Les fonctions anonymes doivent introduire des variables de portée parents via le mot clé Utiliser, et lorsque vous modifiez les variables externes, vous devez passer une référence. La ma?trise de ces règles peut aider à éviter les erreurs et à améliorer la stabilité du code.

Pour gérer en toute sécurité les téléchargements de fichiers PHP, vous devez vérifier la source et taper, contr?ler le nom et le chemin du fichier, définir les restrictions du serveur et traiter les fichiers multimédias deux fois. 1. Vérifiez la source de téléchargement pour empêcher le CSRF via le jeton et détecter le type de mime réel via FINFO_FILE en utilisant le contr?le de liste blanche; 2. Renommez le fichier à une cha?ne aléatoire et déterminez l'extension pour la stocker dans un répertoire non Web en fonction du type de détection; 3. La configuration PHP limite la taille de téléchargement et le répertoire temporaire Nginx / Apache interdit l'accès au répertoire de téléchargement; 4. La bibliothèque GD résait les images pour effacer des données malveillantes potentielles.

Il existe trois méthodes courantes pour le code de commentaire PHP: 1. Utiliser // ou # pour bloquer une ligne de code, et il est recommandé d'utiliser //; 2. Utiliser /.../ pour envelopper des blocs de code avec plusieurs lignes, qui ne peuvent pas être imbriquées mais peuvent être croisées; 3. Compétences combinées Commentaires tels que l'utilisation / if () {} / pour contr?ler les blocs logiques, ou pour améliorer l'efficacité avec les touches de raccourci de l'éditeur, vous devez prêter attention aux symboles de fermeture et éviter les nidification lorsque vous les utilisez.

La clé pour rédiger des commentaires PHP est de clarifier l'objectif et les spécifications. Les commentaires devraient expliquer "pourquoi" plut?t que "ce qui a été fait", en évitant la redondance ou trop de simplicité. 1. Utilisez un format unifié, tel que DocBlock (/ * /) pour les descriptions de classe et de méthode afin d'améliorer la lisibilité et la compatibilité des outils; 2. Soulignez les raisons de la logique, telles que pourquoi les sauts JS doivent être sortis manuellement; 3. Ajoutez une description d'une vue d'ensemble avant le code complexe, décrivez le processus dans les étapes et aidez à comprendre l'idée globale; 4. Utilisez TODO et FIXME Rationalement pour marquer des éléments et des problèmes de taches pour faciliter le suivi et la collaboration ultérieurs. De bonnes annotations peuvent réduire les co?ts de communication et améliorer l'efficacité de la maintenance du code.

AgeneratorInphpisamemory-EfficientwaytoterateOrgedatasetsByyieldingValuesonEatatimeIntedofreturningThemallAtonce.1.GeneratorsUsEtheieldKeywordToproduceValuesondemand, ReducingMemoryUsage.2.TheyAreusefulForHandlingBigloops, ReadingLargeFiles, OR OR.

Toléarnphpeffective, startBySettingUpAlocalServerERironmentUsingToolsLILYXAMPPANDACODEDITERLIGHILLEVSCODE.1) INSTRUSITIONXAMPFORAPACHE, MYSQL, ANDPHP.2) USACODEDEDITORFORSYNTAXSUPPORT.3)

En PHP, vous pouvez utiliser des crochets ou des accolades bouclées pour obtenir des caractères d'index spécifiques à la cha?ne, mais les crochets sont recommandés; L'index commence à partir de 0 et l'accès à l'extérieur de la plage renvoie une valeur nulle et ne peut pas se voir attribuer une valeur; MB_substr est nécessaire pour gérer les caractères multi-octets. Par exemple: $ str = "Hello"; echo $ str [0]; sortie h; et les caractères chinois tels que MB_substr ($ str, 1,1) doivent obtenir le résultat correct; Dans les applications réelles, la longueur de la cha?ne doit être vérifiée avant le boucle, les cha?nes dynamiques doivent être vérifiées pour la validité et les projets multilingues recommandent d'utiliser des fonctions de sécurité multi-octets uniformément.

Toinstallphpquickly, usexAmpPonWindowsorHomebrewonMacos.1.onwindows, downloadAndInstallxAmppp, selectComponents, startapache et placefilesInhtdocs.2.
