Version 2.0.2 - 2024-12-13
Un cadre simple d'application Web implémentant le modèle architectural de modèle de modèle de modèle (MVC).
composer require "simplesamlphp/simplesamlphp:^2.2" )UMVC prend en charge les modules, voir Configuration / composants.
Le cadre prend en charge les tests fonctionnels avec son plugin Framework. La codéception à l'échelle mondiale doit être compatible avec requis (actuellement v3.1.2)
UMVC prend en charge CLI. Vous pouvez créer vos propres commandes. Les commandes intégrées sont:
Exécuter les commandes en tant que php app $command $action $parameters
Le cadre peut être inclus dans votre projet avec Composer. Run composer require uhi67/umvc:dev-master . Un nouveau projet vide peut être créé à l'aide composer create-project --prefer-dist uhi67/umvc-app name . Cela vous fournira une nouvelle application vide à l'aide du cadre UMVC dans le répertoire nommé. Choisissez n'importe quel nom que vous préférez.
Avertissement: cette partie est en construction. En savoir plus sur les classes mentionnées dans le docblock de la définition de la classe.
composer.json de votre application et incluez uh67/umvc , par exemple composer init --name myname/myapp --require uhi67/umvc:* .composer update .vendor/uh67/umvc/app sur la racine de votre application. Ceci est le lanceur des commandes CLI.vendor/uh67/umvc/www/index.php et .htaccess dans le répertoire www de votre application. Ceci est le routeur de l'interface Web.config/config.php , voir le modèle dans vendor/uh67/umvc/config/config-template.php .runtime écrit par le serveur Web pour placer des fichiers temporaires.www/assets Writable par le serveur Web pour placer des fichiers d'actifs mis en cache de divers composants. controllers , en utilisant l'espace de noms appcontrollers , et dérivez-les de uhi67umvcController .views Dir, au format PhTML simple, et organisez-les en fonction views/controller/action.php Structure.models . Les modèles de base de données sont uhi67umvcModel , les modèles sans base de données sont uhi67umvcBaseModel . migrations .views/layouts . Les vues peuvent appeler d'autres vues partielles.commands , dérivant de la classe uhi67umvcCommand . Il y a une commande intégrée dans le cadre. Les commandes php app répertorie toutes les commandes disponibles, à la fois intégrées et personnalisées.messges/la.php où "LA" est la langue que vous souhaitez traduire. Tous les composants, la plupart des classes UMVC, y compris la classe d'application principale elle-même, est un uhi67umvcComponent . Component implémente les fonctionnalités de la propriété : Magic Getter et Setter utilisent des méthodes GetProperty et SetProperty. Component est configurable : le constructeur accepte un tableau de configuration contenant des valeurs pour les propriétés publiques.
MySqlConnection - pour se connecter à la base de données. Comprend SQL Query Builder. Actuellement la seule implémentation de Connection .FileCache - la seule implémentation de CacheInterface .SamlAuth - La seule implémentation pour AuthManager .L10n - La localisation simple, incluse automatiquement par défaut, traduit uniquement les messages UMVC.L10nFile - La localisation basée sur les fichiers pour traduire les messages de votre application. Form - Un widget avec vue intégrée pour afficher et traiter les formulaires HTML à l'aide de vos modèles.Grid (widget, mais la vue intégrée est toujours manquante) - pour afficher des listes de modèles paginées paginées.Query - représente une requête SQL paramétrée et flexible dans la structure PHP. La commande SQL peut en être construite.Request - représente la demande HTTP, peut être utilisée pour récupérer les paramètres GET et POST.Session - représente la session PHP actuelle, peut être utilisée pour obtenir et définir des variables. Le script d'entrée unique pour l'application Web est le www/index.php . Respectivement, le script d'entrée unique pour l'application CLI est le fichier app . Les deux doivent être copiés dans votre répertoire d'application à partir du répertoire du vendor/uhi67/umvc/ .
Les règles www/.htaccess redirigent toutes les demandes de non-fond vers le www/index.php . Cependant, les actifs statiques sont servis directement à partir du répertoire www. En savoir plus sur le service des actifs de la bibliothèque plus tard.
L' index.php initialise l'autoloader, chargez la configuration principale, crée l'objet principal (classe définie dans la configuration, généralement uhi67/umvc/App ou son descendant). La configuration principale suit les règles du Component configurable.
Toutes les URL formées comme https: // myapp / acontroller / anaction sont traitées de la manière suivante:
uhi67/umvc/App analyse la demande, calcule la classe de contrôleur réelle (dérivée de uhi67/umvc/Controller ) à utiliser, crée le contrôleur et exécute la méthode d'action demandée. Comme dans l'exemple ci-dessus, Acontroller fait référence à votre classe de contrôleur dans votre répertoire controllers en tant qu'AControllerController , et Anaction fait référence à la méthode d'action (comme ActionAnaction ).
Si le nom d'action est absent de l'URL, l' actionDefault sera exécutée. Si le nom du contrôleur est également manquant, le contrôleur principal configuré sera utilisé. Il est également possible de créer une URL avec un nom d'action du contrôleur par défaut sans spécifier le nom du contrôleur - la seule restriction que vous ne pouvez pas avoir de contrôleur avec le même nom que cette action.
La commande al CLI formée comme php app acontroller/anaction est traitée de la manière suivante:
uhi67/umvc/App analyse la demande, calcule la classe de contrôleur réelle (dérivée de uhi67/umvc/Command ) à utiliser, crée le contrôleur et exécute la méthode d'action demandée. Comme dans l'exemple ci-dessus, Acontroller fait référence à votre classe de contrôleur dans votre répertoire commands en tant qu'AControllerController , et Anaction fait référence à la méthode d'action (comme ActionAnaction ). Les commandes intégrées peuvent être exécutées de la même manière. Une commande avec le même nom dans notre application remplace la commande intégrée.
Les parties de la demande d'URL actuelle sont accessibles comme suit:
Pour créer une nouvelle URL à l'aide de noms de contrôleur et d'action, et les paramètres d'optioanl Qurey, utilisez l'une des éléments suivants:
Dans vos fichiers de vue, vous pouvez référer vos actifs statiques situés dans le répertoire www de manière statique, par exemple <link href="/assets/css/app.css" rel="stylesheet"> . Au contraire, si vous souhaitez vous référer à un fichier d'actifs situé quelque part dans la bibliothèque de fournisseurs créés par le compositeur, vous pouvez les utiliser de cette façon:
<script src="<?= $this->linkAssetFile('npm-asset/bootstrap/dist', 'js/bootstrap.bundle.min.js') ?>"></script> La fonction linkAssetFile copie tous les fichiers du répertoire dans le premier argument dans le répertoire de cache d'actif sous le www , et crée une URL valide au fichier int le deuxième argument. Remarque: Le premier argument identifie un package d'actifs. Seul le premier appel pour n'importe quel package copie les fichiers. Tous les appels suivants vers le même package génère uniquement le lien du fichier.
Le cache d'actif est vidé par la commande composer install . Le cache d'actif est toujours www/asset/cache et n'est pas configurable.
...
Ce référentiel contient une application de test intégrée pour les tests d'unité de code de code de code de code interne. Le seul but de l'application de test dans le répertoire tests est de pouvoir exécuter des tests unitaires, et non un exemple d'application pour commencer.
git clonecomposer updatetests/_data/test-config.php basés sur le modèleumvc-test Selon les paramètres de la base de données dans tests/_data/test-config.phpphp vendor/bin/codecept run unit pour les tests unitairesPlus de tests unitaires arrivent ...
Un environnement de test docking intégré peut être utilisé pour tester avec différentes versions PHP et base de données.
Mesures:
tests/docker-compose.yml (faites des clones de ce fichier de modèle)tests/docker/Dockerfile (les étapes d'installation d'extension peuvent changer)tests/.envdocker compose up --build -d (dans les tests Dir)docker exec -it umvc-php-1 php vendor/bin/codecept run unit