Introduction aux frameworks PHP

Avant d'avoir une connaissance approfondie des frameworks PHP, parlons de la raison pour laquelle nous avons besoin de frameworks et comment ils facilitent la vie d'un développeur?

Chaque fois que nous cherchons à développer un site Web, de nombreuses choses dans l'architecture doivent être mises en ligne avant de poursuivre avec la ligne réelle, comme décider comment un appel basé sur le Web traversera son chemin du côté client au côté serveur, ce qui sans perte de généralité incorpore vérification du type de demande (Get, Post ou Put), enregistrement de la piste d'audit, gestion des intercepteurs, etc.

Si vous cherchez à adopter une approche vanille sans incorporer de frameworks, alors probablement de la gestion des appels à la sécurité (comme les scripts intersites), vous devez gérer toutes les instances, ce qui est susceptible d'engager plusieurs développeurs pour les mêmes et ce qui, malheureusement, augmentera la coût du développement de l'application.

Examinons maintenant le type de frameworks que nous avons pour le développement PHP et choisissons le meilleur qui convient à notre application à développer (en gardant à l'esprit le domaine d'activité pour lequel le développement est effectué et la rigueur des règles métier).

Liste des frameworks PHP

Voici une liste des meilleurs frameworks PHP, basée sur la popularité et la capacité à faciliter le développement d'applications.

Laravel

Il s'agit d'un framework open source, suivant l'architecture basée sur le modèle-vue-contrôleur. Les diverses fonctionnalités qu'il fournit sont -

  1. Composer est disponible depuis l'arrivée de Laravel 4 et il agit comme un gestionnaire de dépendances pour ajouter un framework agnostique.
  2. ORM éloquent, c'est-à-dire une implémentation de modèle d'enregistrement actif.
  3. Query Builder fournit un ensemble de classes.
  4. Laravel inspire un code extrêmement propre et lisible, facilitant ainsi la vie des développeurs.
  5. Laravel offre une sécurité d'application Web robuste car il intègre le hachage de mot de passe, le cryptage, la vérification des e-mails, l'authentification API.
  6. Un routage protégé et sécurisé est assuré, toutes les routes Laravel sont définies dans le répertoire routes et ces fichiers sont automatiquement téléchargés par le framework.
  7. Le jeton CSRF est ajouté aux URL pour empêcher la contrefaçon intersite.
  8. Dans le frontend, le framework propose des fonctionnalités telles que le modèle Blade (moteur de modèle), la localisation, Javascript et l'échafaudage CSS.
  9. Prend en charge Redis (magasin de valeurs-clés), la pagination, les migrations (partage du schéma de base de données), l'amorçage de la base de données,
  • Configuration requise du serveur avant de travailler avec Laravel.

Il est préférable d'utiliser la machine virtuelle Laravel Homestead, il est donc fortement recommandé de l'utiliser comme environnement de développement Laravel local.

Si vous n'utilisez pas Homestead, les conditions suivantes sont requises:

  • PHP> = 7.1.3
  • Extension PHP OpenSSL
  • Extension PHP PDO
  • Extension PHP Mbstring
  • Extension PHP Tokenizer
  • Extension PHP XML
  • Extension PHP Ctype
  • Extension JSON PHP
  • Extension PHP BCMath

Installation de Laravel

Laravel utilise composer pour gérer ses dépendances, la principale exigence est donc que le compositeur soit pré-installé.

Téléchargez ensuite le programme d'installation de Laravel à l'aide de composer comme indiqué ci-dessous.

Composer global nécessite Laravel / installer.

  • Création d'un projet via le compositeur

Composer create-project - prefer-dist Laravel / Laravel blog

  • Serveur de développement local

php artisan serve

CodeIgniter

CodeIgniter est un framework de développement open source, voici les fonctionnalités qu'il fournit:

  1. Il ne nécessite pas une implémentation rigoureuse de Model-view-controller, le contrôleur est obligatoire, le modèle et la vue sont facultatifs.
  2. Les fonctions d'aide sont là, comme les URL Helpers qui aident à la création de liens, les Form Helpers sont là, les Text Helpers sont là pour formater le texte et les Cookie Helpers sont là pour définir et lire les cookies.
  3. Vous pouvez créer de nouvelles bibliothèques, remplacer et supprimer des bibliothèques natives.
  4. La fonction de crochets fournit un moyen d'exploiter et de modifier le fonctionnement interne du cadre sans pirater les fichiers de base.
  5. La fonction de chargement automatique est là, ce qui permet aux bibliothèques, assistants et modèles d'être initialisés automatiquement chaque fois que le système fonctionne.
  6. CodeIgniter fournit une fonctionnalité de mise en cache des pages améliorant ainsi les performances.
  7. CodeIgniter possède une classe de journalisation des erreurs qui permet d'enregistrer les messages d'erreur et de débogage en tant que fichiers texte.
  8. Le routage URI est là, la chaîne URL est mappée de manière unique au contrôleur.
  9. Le hachage de mot de passe existe pour la version PHP> 5.5
  10. Dans la partie base de données, diverses fonctionnalités fournies sont QueryBuilder, QueryCaching, Transactions, etc.
  11. Les variables d'environnement peuvent être définies pour décider d'où l'application doit être exécutée, c'est-à-dire avec l'environnement de développement ou la production.
  • Comment installer CodeIgniter -
  1. Téléchargez CodeIgniter depuis Cliquez ici
  2. Décompressez le paquet.
  3. Téléchargez les dossiers et fichiers CodeIgniter sur votre serveur. Normalement, le fichier index.php sera à votre racine.
  4. Ouvrez le fichier application / config / config.php avec un éditeur de texte et définissez votre URL de base. Si vous avez l'intention d'utiliser le chiffrement ou des sessions, définissez votre clé de chiffrement.
  5. Si vous avez l'intention d'utiliser une base de données, ouvrez le fichier application / config / database.php avec un éditeur de texte et définissez vos paramètres de base de données.

Symfony

Symfony est un logiciel open source, les composants Symfony sont un ensemble de bibliothèques PHP découplées et réutilisables. Il vise au développement des applications d'entreprise robustes et vise à donner aux développeurs un contrôle total sur la configuration du répertoire aux bibliothèques étrangères et peut être personnalisé.

Symfony est incorporé avec les fonctionnalités suivantes -

  1. Un routage localisé (i18n) est fourni, ainsi les routes peuvent être localisées pour fournir des chemins uniques par locale. Avec Symfony, ces routes peuvent être écrites sans duplication, les caractères génériques sont également pris en charge.
  2. Les modèles Twig sont là, ils sont simples et ne traitent pas les balises PHP, Twig peut faire un échappement HTML automatique, un échappement manuel de sortie contextuelle et l'inclusion de certains filtres.
  3. La mise en cache des modèles Twig accélère le processus car les modèles sont compilés dans une classe PHP native et mis en cache.
  4. Le composant actif est là pour la génération d'URL et la gestion des versions de CSS, JS et des images.
  5. Le composant BrowserKit est là pour simuler le comportement du navigateur Web, permettant de faire des demandes, de cliquer sur des liens et de soumettre des formulaires par programmation.
  6. Le composant d'injection de dépendance est là, qui implémente un conteneur de service compatible PSR-11 qui permet la standardisation et la centralisation des objets dans l'application.
  7. Le composant DOMCrawler est là pour faciliter la navigation DOM pour les documents HTML et XML.
  8. Le composant Dotenv est là pour créer des variables d'environnement stockées dans des variables .env.
  9. Le répartiteur d'événements est là pour que les composants puissent communiquer via la répartition des événements et les écouter.
  10. Le composant LDAP est déjà présent pour communiquer avec le serveur LDAP.
  11. Le composant ExpressionLanguage fournit un moteur qui peut compiler et évaluer des expressions.
  12. Le composant Polyfill / APCu fournit des fonctions apcu_ * et la classe ACPUIterator aux utilisateurs de l'extension APC héritée.
  13. Le composant Serializer est là pour transformer des objets dans des formats comme JSON, XML ou YAML.
  • Étapes d'installation

Utilisez les étapes suivantes pour les téléchargements, composer doit être préinstallé dans le système -

Le compositeur nécessite une symphonie / un élément

Pour télécharger les composants individuels comme mentionné ci-dessus, veuillez visiter -

https://symfony.com/components

CakePHP

CakePHP est une plate-forme open source qui rend la création d'applications Web simple et plus rapide, nécessite moins de code. CakePHP est livré avec les fonctionnalités suivantes -

  1. Fournit un échafaudage pour construire rapidement des prototypes.
  2. Il y a une classe de cache dans CakePHP qui prend en charge la mise en cache et fournit l'interface statique et l'API uniforme pour interagir avec diverses implémentations de mise en cache.
  3. La classe de hachage fournit des utilitaires statiques qui permettent une gestion appropriée des tableaux, optimisant ainsi le code.
  4. La classe d'inflecteur est fournie pour manipuler la chaîne fournie et gérer les variations de mots telles que la pluralisation et la camélisation.
  5. La journalisation est facile dans CakePHP, la fonction log () est fournie par LogTrait.
  6. Le moyen le plus rapide pour être opérationnel avec REST est d'ajouter quelques lignes pour configurer les itinéraires de ressources dans le fichier config / routes.php
  7. Le paquet de validation dans CakePHP fournit des fonctionnalités pour construire des validateurs qui peuvent valider facilement des tableaux arbitraires de données.
  8. Divers plug-ins sont pris en charge pour une utilisation en conjonction avec CakePHP et ils sont Chronos (fournit une collection d'extensions sans dépendance à l'objet DateTime), DebugKit (a une barre d'outils de débogage et des outils de débogage améliorés), ElasticSearch (fournit une abstraction sur ORM comme haut de elasticsearch, facilite le test et l'indexation des documents).
  9. Phinx et CakePHP, phinx permet aux développeurs de modifier et de manipuler les bases de données de manière claire. Pas besoin d'écrire SQL à la main, plutôt phinx fournit de puissantes API pour créer des migrations en utilisant du code PHP.
  10. La console Bake est fournie pour exécuter CakePHP plus rapidement, la console Bake peut créer des modèles, des vues, des comportements, des cas de test, des appareils et des plugins.

Phinx peut être simplement installé par:

compositeur php. phar nécessite robmorgan / phinx

Le support du middleware est là pour que nous puissions envelopper notre application dans des couches réutilisables et composables de traitement des demandes ou de création de réponses.

  • Installation et pré-requis:

Décrivons certaines conditions préalables qui doivent être satisfaites avant de commencer l'installation:

  1. Serveur HTTP (Apache, Nginx ou Microsoft IIS)
  2. PHP 7.3
  3. extension PHP mbstring
  4. intl PHP extension (si vous utilisez XAMPP, l'extension intl doit être incluse mais assurez-vous de décommenter extension = php_intl.dll dans Php.ini et de redémarrer le serveur XAMPP via le panneau de configuration, au cas où vous utilisez WAMP, l'extension intl est activée par défaut, il vous suffit de vous rendre dans le dossier php et de copier tous les fichiers dans icu * .dll et de les coller dans le répertoire apache bin, puis de redémarrer les services).
  5. extension PHP simplexml
  6. Extension PHP PDO
  7. Toutes les bases de données parmi la liste donnée doivent être installées sur votre machine:
  • MySQL (v5.5.3 ou supérieur)
  • MariaDB (v 5.5 ou supérieur)
  • PostgreSQL
  • SQLite3
  • Serveur Microsoft SQL (> = version 2008)

FuelPHP

FuelPHP est un framework open source, rapide et compatible avec les versions PHP 5.4+, les fonctionnalités incorporées sont listées ci-dessous -

  1. Il s'agit d'un cadre de type MVVM qui n'est pas seulement limité à model-view-controller, mais porte également une approche model-view-ViewModel. Les viewModels sont également appelés modèles de présentation.
  2. FuelPHP prend en charge l'approche basée sur un routeur nous permettant d'écrire l'URI directement.
  3. Prend en charge les jetons CSRF pour empêcher la contrefaçon de script intersite.
  4. Le filtrage d'entrée et le générateur de requêtes aident à l'injection SQL.
  5. Le cadre d'authentification est pris en charge à des fins d'authentification sécurisée.
  6. FuelPHP fournit une CLI appelée «huile», conçue pour accélérer le développement, tester l'assistance et le débogage. Il permet également d'exécuter des migrations de base de données.
  7. Certaines classes de base sont fournies aux contrôleurs et aux modèles afin que les développeurs puissent prendre un bon départ, ces fonctionnalités sont - Controller_Template (ajouter une fonctionnalité de modèle de page simple aux contrôleurs), Controller_Rest (moyen de création d'API RESTful), Controller_Hybrid (combiner deux fonctionnalités dans un seul contrôleur), Model_crud (fournit toutes les méthodes pour les opérations CRUD dans une seule table).
  8. L'ORM léger fournit une manière orientée objet de travailler avec les données de la base de données et d'exécuter CRUD, les relations aiment les has-many, many-many sont là, les sauvegardes en cascade et les suppressions pour les objets associés. Les observateurs sont là pour mettre à jour les instances d'objets.
  9. La sécurité intègre le cadre Auth et a intégré la bibliothèque Opauth et fournit diverses autres fonctionnalités telles que le contrôle d'accès basé sur les rôles (RBAC), la fonction de hachage sécurisée pour les mots de passe, l'intégration OAuth pour l'authentification des médias sociaux.
  10. Il existe des analyseurs de modèles pour améliorer les vues à partir de PHP simple, de nombreuses bibliothèques sont là pour cela:
    1. Moustache
    2. Brindille
    3. Haml
    4. Jade
    5. Dawoo
    6. Smarty
    7. Réduction
  • Étapes d'installation -

Veuillez suivre les étapes données pour la même chose -

$ curl https://get.fuelphp.com/oil | sh

Le projet peut être créé en utilisant

$ oil create

$ composer create-project fuel / fuel –prefer-dist

Conclusion - Frameworks PHP

Dans la documentation ci-dessus, nous avons cité plusieurs cadres PHP utilisés pour transporter plusieurs fonctionnalités pour le développement de code. L'analyse des exigences et des modèles de conception à suivre doit être discutée avant de choisir l'une d'entre elles. Les cadres étaient diversifiés et fournissaient divers plug-ins pour que la journalisation et le suivi des métriques soient présents.

Le cadre nommé Lumen par Laravel est très apprécié tout en recherchant le développement de microservices car l'architecture des microservices est différente des applications monolithiques, les mécanismes de journalisation, la gestion de la base de données, la sécurité Auth et la mise en œuvre sont des préoccupations majeures avant le codage.

Une autre chose à prendre en compte en optant pour un cadre est le domaine pour lequel l'application est conçue, que ce soit les services bancaires et financiers, la gestion des chaînes d'approvisionnement, les sciences de la vie, la vente au détail ou les réseaux sociaux.

Parce que sur la base de ces domaines, nous devons incorporer des plug-ins et des conceptions pour prendre en charge le suivi distributif, les tentatives de nouvelle tentative de service, etc.

Par conséquent, un codeur peut procéder à n'importe lequel des cadres cités après avoir évalué les fonctionnalités en étroite collaboration avec l'application.

Articles recommandés

Cela a été un guide pour les frameworks PHP. Ici, nous avons discuté de la liste des frameworks PHP avec leurs fonctionnalités et les étapes d'installation. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus -

  1. Qu'est-ce que PHP? Quelles sont les utilisations?
  2. Guide détaillé sur Qu'est-ce que PHP Array?
  3. Avantages de la programmation PHP
  4. Introduction à PHP | Tutoriels complets
  5. MariaDB vs MySQL | Comparaison des meilleures sources de base de données
  6. Fonction de hachage en PHP | Comment travailler?