Modèles de conception
L'objectif du référentiel est d'inspirer les développeurs à comprendre et à utiliser les modèles de conception à travers divers exemples. Veuillez envisager d'ajouter un exemple pour tout modèle qui pourrait aider les autres à bien comprendre le modèle.
Installation
Veuillez suivre les directives pour exécuter ce projet.
- Clonez le dépôt à l'aide
git clone https://github.com/basherr/PHP-Design-Patterns.git
- Exécutez la commande suivante dans le dossier cloné :
composer install
- Assurez-vous que tous les cas de test réussissent en exécutant la commande
composer test
- Pour servir le projet, naviguez dans le dossier
public/
et exécutez la commande : php -S localhost:8000
Consultez le fichier routes.php pour tester un exemple de modèle spécifique.
Si vous trouvez une implémentation erronée ou vague, veuillez créer un problème et laissez-nous nous entraider dans l'apprentissage des modèles de conception .
Exemples de modèles de conception créationnelle
- Modèle abstrait
- Exemple de fabricant de téléviseur – Contributé par le propriétaire
- Modèle de constructeur
- Base de données - Contribuée par le propriétaire
- Restaurant - Contribution du propriétaire
- Modèle de méthode d'usine
- Constructeur automobile – Contributé par le propriétaire
- Enregistreur - Contribution du propriétaire
- Modèle de piscine
- StringReverse Worker - Contribution du propriétaire
- Modèle de prototype
- AcmePrototype - Contribution du propriétaire
- Modèle d'usine statique
- Fournisseurs - Contribution du propriétaire
Exemples de modèles de conception structurelle
- Modèle d'adaptateur
- Adaptateur humain – Contributé par le propriétaire
- Adaptateur de systèmes d'exploitation - Proposé par le propriétaire
- Modèle de pont
- Pont des fournisseurs de vols – Contributé par le propriétaire
- Modèle composite
- Formulaire composite – Contribué par le propriétaire
- Modèle de décorateur
- Enregistrement actif – Contribué par le propriétaire
- Façade
- Quickbooks – Contribution du propriétaire
- Modèle de proxy
- Proxy de lecteur de fichiers – Contributé par le propriétaire
- Modèle de registre
- Registre des examens – Contributé par le propriétaire
- Modèle d'injection de dépendance
- Mailer - contribué par le propriétaire
Exemples de modèles de conception de comportement
- Modèle de chaîne de responsabilité
- Gérer la demande Http – Contribution du propriétaire
- Modèle de commande
- API Scrapper - Contributé par le propriétaire
- Modèle d'itérateur
- Fournisseurs d'hôtels - Contribution du propriétaire
- Modèle d'observateur
- Observateur de l'inscription des utilisateurs – Contributé par le propriétaire
Guides de contribution
Votre contribution peut avoir un très bon impact sur la communauté, alors essayez de partager tous les exemples possibles auxquels vous pouvez penser ou que vous avez vécus dans le passé.
Le référentiel n'est basé sur aucun framework mais plutôt inspiré de No Framework
La structure du code du référentiel est la suivante :
-
app
-
bootstraps
-
public
-
stubs
-
tests
Le cycle de vie de l'application est le suivant :
-
public/index.php
sert de point d'entrée pour l'ensemble de l'application qui charge boostrap/autoload.php
-
bootstrap/autoload.php
traite la requête HTTP
et transmet la route à la Controller method
appropriée définie dans bootstrap/routes.php
.
Afin de contribuer et d'ajouter un exemple concret pour le modèle associé, veuillez suivre les directives :
- Forker le référentiel
- Créez un dossier dans
app/Patterns/{Type eg Creational, Behavioral or Structural}/{Pattern Name}/{Example Name}/your code
- Veuillez créer un fichier READMe.md et inclure un diagramme UML. Exemple README.md
- Ajouter
unit tests
- Créez
Application.php
avec une méthode nommée render
pour décrire l'utilisation. Exemple d'application.php - Ajoutez une méthode dans le contrôleur concerné (par exemple créationnel) et ajoutez une route dans
bootstraps/routes.php
- Veuillez exécuter
composer test
et assurez-vous que tous les tests réussissent - Créer un PR contre la branche principale
N'hésitez pas à contribuer et à créer des demandes de tirage.
Commandes de la console
La seule commande de console disponible pour créer des tests est :
php .bootstrapsconsole_autoload.php MyAwesomeTestName
Discussions
Veuillez créer un problème ou rejoindre Discord pour toute discussion.
Licence
Toutes les bases de code sont sous licence MIT, sauf indication contraire.