Application SlimPhp 4 Skeleton MVC
La documentation de la version de ce cadre basé sur SlimPhp 3 peut être trouvée ici.
Il s'agit d'une application Web de modèle (alimentée par Slimphp 4), qui peut être étendue pour créer des applications Web plus complexes.
Bien qu'il ne soit pas nécessaire d'avoir une compréhension experte du framework SlimPhp 4 (https://www.slimframework.com/docs/v4/) afin de créer des applications Web avec ce cadre d'application de modèle, une telle compréhension aiderait à maximiser les capacités de ce cadre d'application de l'application de modèle.
Caractéristiques / avantages de l'utilisation du framework Slim MVC
Il ajoute la structure de contrôleur de vue modèle à votre application Web. En fait, vraiment plus de fonctionnalités de vision contrôleur avec un dossier de modèle prévu pour le logement de vos cours de modèle (vous laissant la responsabilité de choisir la bibliothèque d'accès à la base de données / la base de données répond à vos besoins ou est le plus à l'aise avec)
Fournit un dossier squelette / structure de répertoire pour votre application:
./path/to/newly/created/app
|-- config/
|-- languages/
| |-- en_US.php
| `-- fr_CA.php
| |-- app-settings.php
| |-- app-settings-dist.php
| |-- dependencies.php
| |-- env.php
| |-- env-dist.php
| |-- ini-settings.php
| `-- routes-and-middlewares.php
|
|-- logs/
|
|-- public/
| |-- css/
| |-- images/
| |-- js/
| `-- index.php
|
|-- src/
| |-- controllers/
| |-- layout-templates/
| |-- models/
| |-- views/
| `-- AppErrorHandler.php
|
|-- tests/
|
|-- tmp/
|
|-- vendor/
|
|-- .gitignore
|-- composer.json
|-- composer.lock
`-- README.md
Fournit certaines fonctions d'assistance comme smvc_uritoString ( psr http message uriInterface $ uri) , smvc_addquerystrparamtouri ( psr http message uriInterface $ uri, $ param_name, $ param_value) , etc. Dans l'espace global par défaut et quelques fonctions de chaîne HELPER FONCTIONS HELPER FONCTIONS DANS LA SlimMvcToolsFunctionsStr espace de noms
Fournit un schéma de routage automatique pour la cartographie des URL de demande aux méthodes dans les classes de contrôleur qui sont des sous-classes de SlimMvcToolsControllersBaseController . Vous n'avez pas besoin de définir des itinéraires pour votre application si vous adhérez à l'utilisation de contrôleurs compatibles avec le schéma de routage
- Prend également en charge le fonctionnement en utilisant uniquement les fonctionnalités PHP pur slim purs (c'est-à-dire que vous pouvez définir manuellement / explicitement tous ou certains itinéraires (dont chacun peut ou non utiliser les classes de contrôleur comme des gestionnaires d'itinéraire) et les moyennes intermédiaires pour votre application.
Expédient avec une classe BaseController (c. SlimMvcToolsControllersBaseController -d. et les méthodes pour rendre les fichiers de vue et de mise en page PHP à l'aide de la classe LOTEXSOFT FileRenderer Renderer facilement extensible et facilement extensible. Jetez un œil à la classe pour une liste complète des méthodes qui peuvent être utilisées dans vos applications.
Fournit un script de ligne de commande pour créer des classes de contrôleur (qui étendent SlimMvcToolsControllersBaseController ou l'un de ses descendants).
-
./vendor/bin/smvc-create-controller sur *nix-like OSS et .vendorbinsmvc-create-controller.bat sur Windows- Remarque:
./vendor/bin/smvc-create-controller-wizard est la version interactive de ./vendor/bin/smvc-create-controller
Expédient avec une quantité très minimale de dépendances compositeurs / packagistes (qui sont toutes utilisées par SlimMvcToolsControllersBaseController ) afin de vous permettre d'inclure uniquement des dépendances supplémentaires qui répondent aux besoins spécifiques de votre application. Réduisant ainsi la possibilité d'avoir des dépendances inutilisées / inutiles dans votre application. Les packages suivants sont utilisés dans ce cadre:
- Slim Framework Version 4: Pour le routage, les demandes HTTP pour les méthodes d'action dans les classes de contrôleur (ou d'autres callables acceptables par Slim pour répondre aux demandes qui correspondent aux itinéraires définis) et renvoient les réponses HTTP aux clients
- Rendu de fichier: pour rendre les fichiers de mise en page et d'affichage PHP (qui contiennent essentiellement un mélange de PHP, HTML, CSS et JavaScript) qui seront renvoyés sous forme de HTML dans des corps de réponse HTTP aux clients. Le texte brut, JSON, XML et autres réponses non-HTML peuvent être émises directement à partir des méthodes d'action du contrôleur (elles n'ont pas besoin de ce rendu)
- Vespula Auth: un package d'authentification léger qui est utilisé par les actions de connexion et de déconnexion par défaut dans la base de base pour authentifier les utilisateurs. Une DB SQLite en mémoire est utilisée pour l'authentification par défaut, vous devez passer à une base de données relationnelle appropriée comme MySQL (contre lequel ce package peut également se rédiger)
- Vespula Locale: Un autre package léger pour gérer les chaînes localisées dans ce cadre. Des choses comme les messages d'erreur pendant la connexion sont gérées à l'aide d'une instance de ce package pour afficher ces messages dans le langage souhaité sélectionné par l'utilisateur. Les États-Unis en anglais et en français canadien sont les deux langues que ce cadre prend en charge hors de la boîte. D'autres fichiers de paramètres régionaux peuvent être ajoutés au dossier ./config/languages et leur (s) code (s) de paramètres locaux doit être ajouté au conteneur ( $ conteneur [contenerKeys :: valid_locales] ) et un lien pour ce langage doit être ajouté à la mise en page avec une chaîne de requête appropriée afin que les utilisateurs qui cliquent sur cela puissent définir ce langage comme un langage désiré lors de l'interaction avec une application construite avec ce cadre avec ce corps
- Vespula Journal: un enregistreur PSR-3 qui est utilisé dans ce cadre pour enregistrer divers événements (comme les événements de connexion et de déconnexion réussis, etc.). Il est plus léger que d'autres packages comme Monolog et assez décents.
- Pimple: un conteneur simple d'injection de dépendance qui est utilisé pour alimenter slimvctools conteneur (le conteneur conforme PSR-11 qui est expédié avec ce cadre)
- NYHOLM PSR7: une implémentation rapide PHP7 de PSR-7 injectée dans SLIMPHP par ce cadre
- NYHOLM PSR7 Server: Classes d'assistance pour gérer les demandes de serveur PSR-7, également utilisées par SlimPhP dans ce framework
Vous devez également consulter les méthodes publiques disponibles dans SLIMMVCTOOLS CONTRÔLERS BASEController que toutes les classes de contrôleur de vos applications étendront et qui seront utiles dans vos applications comme le ForceHttp ### , GetResponseoBjForlogInredirectionIfnotlogged , Isloggedin , Makelink , Renderlayout & Rendervied méthodes méthodes
S'efforce d'adhérer strictement aux messages HTTP PSR-7 et aux interfaces PSR / conteneur , afin de faciliter l'utilisation de différentes implémentations des objets de demande et de réponse PSR-7 et des conteneurs conformes PSR / conteneurs
Exigences
- PHP 7.2+ (pour la version 3.x) ou PHP 7.4+ (pour la version 4.x) ou PHP 8.1+ (pour la version 5.x)
- PDO SQLITE (3) Extension pour l'authentification dans les environnements de non-production
- Composer (https://getcomposer.org)
Documentation
- Guide de démarrage rapide
- Fonctionnalité MVC
- Utilisation du monde réel: création d'une application de catalogue de films
- Tous les exemples de ligne de commande supposent que vous avez changé le répertoire dans le dossier racine de votre application nouvellement créée.
- Veuillez soumettre un problème ou une demande de traction si vous trouvez des problèmes avec la documentation.
Ramification
Ce sont les branches de ce référentiel:
- Master: contient du code pour la dernière version majeure de ce cadre
Il devrait toujours y avoir une branche mince - # - edition-Versions-xx qui sera synchronisée avec Master et à partir desquelles les dernières versions majeures seront taguées. Le composer.json dans cette branche nécessitera la version stable la plus récente de RotexSoft / Slim-Skeleton-MVC-Tools par opposition à la version Dev-Master qui sera toujours requise dans le compositeur.json dans la branche maître.
- Slim-4-Edition-Versions-5.x: contient du code pour la version 5.x de ce package (actuellement synchronisé avec Master jusqu'à ce qu'une version 6.x plus récente commence à être développée sur Master)
- Slim-4-Edition-Versions-4.x: contient du code pour la version 4.x de ce package. Aucune nouvelle fonctionnalité, uniquement les corrections de bogues acceptées.
- Slim-3-Edition: contient du code pour la version 3.x de ce package. Aucune nouvelle fonctionnalité, uniquement les corrections de bogues acceptées.
- 1.x: contient du code pour la version 1.x de ce package. Abandonné.
- Project-Website: contient du code pour le site Web de documentation pour ce projet (https://rotexsoft.github.io/slim-skeleton-mvc-app/).
- La succursale du projet-Website a été créée en mai 2024 et est en cours de développement. Supprimera cet avis lorsque le site Web de la documentation sera prêt à partir. Pour l'instant, continuez à lire la documentation dans la branche pour la version de ce cadre que vous utilisez actuellement.
Problèmes
- Veuillez soumettre un problème ou une demande de traction si vous trouvez des problèmes avec cette application squelette.
- Si vous suggérez une amélioration, veuillez d'abord créer un problème afin qu'il puisse être délibéré, avant de soumettre une demande de traction.