Je dois admettre que, à un moment donné, je me sentais un peu mal par rapport au langage PHP. Un certain nombre d'articles poignants sur la haine de PHP entouraient le Web comme un virus, et certains de ses frameworks phares, tels que CodeIgniter, devenaient rapidement obsolètes. Pendant tout ce temps, Ruby on Rails semblait être en tête du peloton en termes d’innovation et de facilité de développement. Au fil du temps, je me suis retrouvé de plus en plus à chercher ma ceinture à outils Ruby..
Mais un jour, j’ai découvert un nouveau cadre élégant, appelé Laravel. Au début, je l'ai écarté comme étant un autre clone de Sinatra qui diminuerait rapidement en néant, car le développeur principal l'a abandonné. Néanmoins, semaine après semaine, mes flux sur les réseaux sociaux étaient très chargés, louant la lisibilité de Laravel. "Se pourrait-il, pensais-je, que PHP dispose enfin d'un framework vraiment moderne?"
En savoir plus sur Laravel à http://laravel.com
Je n'étais plus disposé à rester à l'écart; il était temps de creuser. Un an plus tard, je suis l'un de ses plus grands évangélistes. Laravel rend PHP amusant à nouveau! Mieux encore, je ne crois plus que PHP soit à jamais voué à la plupart des sites personnels et des blogs WordPress laids. Nan; En fait, cet auteur est convaincu que, grâce à Laravel, Composer et PHP 5.5, nous sommes sur le point de vivre la prochaine renaissance du langage le plus populaire côté serveur sur le Web..
Pour installer la dernière version de développement de Laravel (v4), vous devez d'abord installer Composer. Ensuite, il suffit de cloner le référentiel et d'installer les dépendances.
git clone git: //github.com/illuminate/app.git myApp
etcompositeur installer
. Vous êtes prêt à partir!
La plupart des développeurs PHP commencent leur voyage en imbriquant d'innombrables lignes de SQL directement dans leur PHP glacé et illisible. Inutile de dire que l’exclusion des sites les plus élémentaires conduit rapidement à un gâchis intenable..
Vous vous souvenez de la première fois que vous avez entendu parler d'ActiveRecord de Ruby on Rails? Eh bien, dans le monde PHP, Eloquent est sa première implémentation.
Besoin d'exemples?
// Récupère toutes les tâches $ tasks = Task :: all (); // Récupère la tâche avec un identifiant de 1 $ task = Task :: find (1); // Mettre à jour une tâche $ task = Task :: find (1); $ task-> title = 'Installez ce cookie!'; $ task-> save (); // Créer une nouvelle tâche Task :: create (['title' => 'Ecrire un article']); // Supprimer une tâche Task :: find (1) -> delete ();
Les gens, il n'est pas possible d'écrire plus de code lisible en PHP! Ce serait une chose si Eloquent ne vous permettait d'effectuer que des opérations CRUD de base sur une table, mais ce n'est certainement pas le cas..
Examinez les relations entre les tables, telles qu'un utilisateur et ses tâches respectives. Dans Laravel, après avoir défini une méthode de recherche rapide pour chaque modèle, nous pouvons facilement gérer une relation un à un ou toute association de ce type. Voici quelques exemples pour vous mettre en appétit.
// Obtient toutes les tâches de l'auteur avec un identifiant de 1 $ tasks = User :: find (1) -> tasks; // Récupère l'auteur d'une tâche $ author = Task :: find (5) -> user () -> nom d'utilisateur; // Insérer une nouvelle tâche par l'auteur $ task = new Task ([title: 'Go to store.']); Utilisateur :: find (1) -> tasks () -> insert ($ task);
Il n'est pas exagéré de considérer Eloquent comme la meilleure implémentation d'ActiveRecord en langage PHP.
Installer le compositeur.
À partir de Laravel 4 (actuellement en Alpha), l’ensemble de la structure sera modulaire et disponible sous forme de packages Composer individuels..
Composer est un système de packaging pour PHP similaire à PEAR, mais meilleur. Cela simplifie au maximum le processus de gestion des dépendances.
Pensez à l'écosystème du cadre existant. Pour le moment, vous êtes obligé de vivre avec le jeu de fonctionnalités de base de chaque framework. Vous ne pouvez pas choisir, par exemple, d’utiliser Eloquent dans une application CakePHP. Comme vous pouvez l’imaginer, cette vérité a conduit à un processus insensé de réinventer la roue encore et encore… et plus encore..
Mesdames et Messieurs, l'avenir de PHP est modulaire. Pourquoi installer un framework massif et gonflé, alors que vous n’avez besoin que de quelques-unes de ses offres? Eh bien, bientôt, vous n'aurez plus à le faire. Vous n'avez besoin que d'Eloquent dans un projet simple? Bien - pas un problème du tout! Installez-le simplement via Composer et passez à autre chose.!
Donc, si nous passons à un monde PHP modulaire davantage basé sur des paquets, comment Laravel s’intègre-t-il? Eh bien, pensez-y comme une collection prédéterminée de paquets, enveloppés dans un arc! Mieux encore, si vous devez mettre à jour la dernière version du framework, c'est aussi simple que d'exécuter mise à jour du compositeur
.
A titre d'exemple de la flexibilité que cela procure, ajoutons la bibliothèque de tests Mockery, très répandue, à une application Laravel. Commencez avec un nouveau projet Laravel 4 et éditez-le. composer.json
fichier à requérir Mockery.
"require": "illuminate / foundation": "> = 1.0.0", "mockery / mockery": "dev-master", "autoload": "classmap": ["app / controllers", " app / models "," app / database / migrations "," app / tests / TestCase.php "]
Reportez-vous à Packagist.org pour obtenir la liste des packages Composer disponibles, ainsi que les instructions d’installation..
Maintenant que nous avons informé Composer que notre application nécessite Mockery, nous pouvons installer les dépendances applicables..
mise à jour du compositeur
Et c'est tout! Nous pouvons maintenant utiliser Mockery dans nos tests. C'est le pouvoir de Composer et Laravel 4 au travail! Nous avons des roues; arrêtons d'en créer de nouveaux! Des centaines de paquets sont disponibles via Packagist.org.
Des centaines de paquets sont disponibles via Packagist.org.
Itinéraires
La plupart des développeurs PHP débutants ne connaissent rien d'autre que le plus naturel des systèmes de routage. Créez une arborescence de répertoires correspondant à l'URI de votre choix, puis poursuivez. Par exemple, ajoutez un
index.php
fichier dans le répertoire suivant:blog / admin /
, et, maintenant, vous pouvez y accéder en naviguant sur:localhost: 8888 / blog / admin / index.php
. Facile! Eh bien, peut-être au début; mais vous constaterez probablement que vous avez besoin de plus de flexibilité et de contrôle sur la route déclenchée dans votre application..Laravel adopte une approche de routage incroyablement simple et facile à utiliser. À titre d'exemple, écrivons l'itinéraire nécessaire pour afficher une vue du profil d'un utilisateur..
Route :: get ('utilisateurs / id', function ($ id) // recherche l'utilisateur $ utilisateur = utilisateur :: find ($ id); // affichage, et passe le retour d'objet utilisateur View :: make ('users.profile') -> avec ('utilisateur', $ utilisateur););Maintenant, quand un utilisateur demande
example.com/users/1
, lautilisateurs / profile.php
la vue sera rendue.Alternativement, nous pouvons utiliser des contrôleurs traditionnels pour gérer la logique.
Route :: get ('utilisateurs / id', 'Utilisateurs @ show');À présent,
Contrôleurs / Utilisateurs.php
sera responsable de rendre la vue - en particulier laspectacle
méthode.avec ('utilisateur', $ utilisateur);
Authentification Facile
Presque toute application Web de substance nécessitera une forme d'authentification. Laravel fournit une interface simple mais facile à utiliser pour l'authentification des utilisateurs.
Commencez par créer un
utilisateurs
table avec les champs nécessaires pour laNom d'utilisateur
etmot de passe
. Rappelez-vous: il s'agit d'un cas d'utilisation idéal pour une migration!Laravel peut alors
tentative
pour connecter un utilisateur - probablement basé sur les valeurs fournies par l'utilisateur à partir d'un formulaire.Voici un exemple de base, sans l'aspect validation.
Route :: post ('login', function () $ credentials = array ('nomutilisateur' => Input :: get ('nomutilisateur'), 'password' => Input :: get ('mot_passe')); / / effectue la validation si (Auth :: tentative ($ informations d'identification)) // Les informations d'identification correspondent. Connecté! return Redirect :: to ('admin / profile'););Notez que, dans les coulisses, Laravel hachera automatiquement le mot de passe fourni et le comparera à ce qui est stocké dans le
utilisateurs
table.En supposant que les informations d'identification de l'utilisateur correspondent, l'ID utilisateur sera stocké dans la session et l'utilisateur sera connecté. Lors des demandes suivantes, vous pouvez récupérer le nom d'utilisateur de l'utilisateur actuellement connecté avec:
$ user = Auth :: user () -> nom d'utilisateur;
Envoi Email
Admettez-le: l'envoi d'e-mails via votre application est toujours plus compliqué qu'il ne devrait l'être. Plus maintenant à Laravel 4!
Construit sur le paquet SwiftMailer, vous trouverez maintenant un nouveau
config / mail.php
déposer dans votre application. C'est ici que vous pouvez spécifier les informations d'identification nécessaires à votre fournisseur de messagerie. Voici une version simplifiée de ce que vous trouverez:'smtp.example.com', 'port' => 2525, 'from' => array ('address' => null, 'name' => null), 'encryption' => 'tls', 'username' = > null, 'password' => null,);Il suffit de remplacer les valeurs par celles de votre serveur de messagerie en conséquence.
Ensuite, nous avons besoin d’une vue pour le courrier électronique. Créons-en un, appelé
bienvenue.blade.php
, qui sera utilisé lorsqu’un nouveau membre s’inscrira sur le site de nos fans Justin Bieber.Bonjour, $ user-> name. Merci encore pour votre inscription aux dernières nouvelles de Justin Bieber! Nous attendons avec impatience de vous voir. Merci, gestion