Le contr?leur comme son nom l'indique contr?le l'application. Il agit comme un pont entre les modèles et les vues. Les contr?leurs gèrent les données de demande, s'assurent que les modèles corrects sont appelés et que la bonne réponse ou la bonne vue est rendue.
Les méthodes de la classe des contr?leurs sont appelées actions. Chaque contr?leur suit les conventions de dénomination. Les noms de classe Contr?leurs CakePHP sont au pluriel, Camel Cased, et se terminent par Contr?leurs CakePHP — PostsContr?leurs CakePHP.
AppContr?leurs CakePHP
La classe AppContr?leurs CakePHP est la classe parent de tous les contr?leurs d'applications. Cette classe étend la classe Contr?leurs CakePHP de CakePHP. AppContr?leurs CakePHP est défini dans src/Contr?leurs CakePHP/AppContr?leurs CakePHP.php. Le fichier contient le code suivant.
<?php declare(strict_types=1); namespace App\Contr?leurs CakePHP; use Cake\Contr?leurs CakePHP\Contr?leurs CakePHP; class AppContr?leurs CakePHP extends Contr?leurs CakePHP { public function initialize(): void { parent::initialize(); $this->loadComponent('RequestHandler'); $this->loadComponent('Flash'); } }
AppContr?leurs CakePHP peut être utilisé pour charger des composants qui seront utilisés dans chaque contr?leur de votre application. Les attributs et méthodes créés dans AppContr?leurs CakePHP seront disponibles dans tous les contr?leurs qui l'étendent. La méthode initialize() sera invoquée à la fin du constructeur du contr?leur pour charger les composants.
Actions du contr?leur
Les méthodes de la classe contr?leur sont appelées Actions. Ces actions sont responsables de l’envoi d’une réponse appropriée au navigateur/utilisateur faisant la demande. La vue est rendue par le nom de l'action, c'est-à-dire le nom de la méthode dans le contr?leur.
Exemple
class RecipesContr?leurs CakePHP extends AppContr?leurs CakePHP { public function view($id) { // Action logic goes here. } public function share($customerId, $recipeId) { // Action logic goes here. } public function search($query) { // Action logic goes here. } }
Comme vous pouvez le voir dans l'exemple ci-dessus, le RecipesContr?leurs CakePHP a 3 actions?: Afficher, Partager et Rechercher.
Contr?leurs CakePHPion
Pour rediriger un utilisateur vers une autre action du même contr?leur, on peut utiliser la méthode setAction(). Voici la syntaxe de la méthode setAction().
Cake\Contr?leurs CakePHP\Contr?leurs CakePHP::setAction($action, $args...)
Le code suivant redirigera l'utilisateur vers l'action d'indexation du même contr?leur.
$this->setAction('index');
L'exemple suivant montre l'utilisation de la méthode ci-dessus.
Exemple
Apportez des modifications au fichier config/routes.php comme indiqué dans le programme suivant.
config/routes.php
<?php use Cake\Http\Middleware\CsrfProtectionMiddleware; use Cake\Routing\Route\DashedRoute; use Cake\Routing\RouteBuilder; $routes->setRouteClass(DashedRoute::class); $routes->scope('/', function (RouteBuilder $builder) { // Register scoped middleware for in scopes. $builder->registerMiddleware('csrf', new CsrfProtectionMiddleware([ 'httpOnly' => true, ])); $builder->applyMiddleware('csrf'); $builder->connect('/redirect-controller',['controller'=>'Contr?leurs CakePHPs','action'=>'action1']); $builder->connect('/redirect-controller2',['controller'=>'Contr?leurs CakePHPs','action'=>'action2']); $builder->fallbacks(); });
Créez un fichier Contr?leurs CakePHPsContr?leurs CakePHP.php dans src/Contr?leurs CakePHP/Contr?leurs CakePHPsContr?leurs CakePHP.php. Copiez le code suivant dans le fichier du contr?leur.
src/Contr?leurs CakePHP/Contr?leurs CakePHPsContr?leurs CakePHP.php
<?php declare(strict_types=1); namespace App\Contr?leurs CakePHP; use Cake\Core\Configure; use Cake\Http\Exception\ForbiddenException; use Cake\Http\Exception\NotFoundException; use Cake\Http\Response; use Cake\View\Exception\MissingTemplateException; class Contr?leurs CakePHPsContr?leurs CakePHP extends AppContr?leurs CakePHP { public function action1() { } public function action2(){ echo "redirecting from action2"; $this->setAction('action1'); } }
Créez un répertoire Contr?leurs CakePHPs dans src/Template et sous ce répertoire, créez un fichier View appelé action1.php. Copiez le code suivant dans ce fichier.
src/Template/Contr?leurs CakePHPs/action1.php
<h1>This is an example of how to redirect within controller.</h1>
Exécutez l'exemple ci-dessus en visitant l'URL suivante.
http://localhost/cakephp4/redirect-controller
Sortie
Lors de l'exécution, vous recevrez le résultat suivant.

Maintenant, visitez l'URL suivante?: http://localhost/cakephp4/redirect-controller2
L'URL ci-dessus vous donnera le résultat suivant.

Chargement des modèles
Dans CakePHP, un modèle peut être chargé à l'aide de la méthode loadModel(). Voici la syntaxe de la méthode loadModel() ?
Cake\Contr?leurs CakePHP\Contr?leurs CakePHP::loadModel(string $modelClass, string $type)
Il y a deux arguments à la fonction ci-dessus comme suit ?
Le premier argument est le nom de la classe modèle.
Le deuxième argument est le type de référentiel à charger.
Exemple
Si vous souhaitez charger le modèle Articles dans un contr?leur, il peut être chargé en écrivant la ligne suivante dans l'action du contr?leur.
$this->loadModel('Articles');
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Pour fusionner deux tableaux PHP et conserver des valeurs uniques, il existe deux méthodes principales. 1. Pour les réseaux d'index ou uniquement la déduplication, utilisez Array_merge et Array_Unique Combinaisons: First Merge Array_merge ($ array1, $ array2), puis utilisez Array_Unique () pour les dédupliquer pour enfin obtenir un nouveau tableau contenant toutes les valeurs uniques; 2. Pour les tableaux associatifs et souhaitez conserver les paires de valeurs clés dans le premier tableau, utilisez l'opérateur: $ result = $ array1 $ array2, ce qui garantira que les clés du premier tableau ne seront pas écrasées par le deuxième tableau. Ces deux méthodes s'appliquent à des scénarios différents, selon que le nom de clé est conservé ou que l'accent est mis sur

Exit () est une fonction de PHP qui est utilisée pour terminer l'exécution du script immédiatement. Les utilisations courantes incluent: 1. Terminez le script à l'avance lorsqu'une exception est détectée, comme le fichier n'existe pas ou que la vérification échoue; 2. Résultats intermédiaires de sortie pendant le débogage et l'arrêt de l'exécution; 3. Appelez Exit () après la redirection en conjonction avec Header () pour empêcher l'exécution de code ultérieure; De plus, Out () peut accepter les paramètres de cha?ne en tant que contenu de sortie ou entiers comme code d'état, et son alias est DIE ().

L'utilisation rationnelle des balises sémantiques dans HTML peut améliorer la clarté de la structure des pages, l'accessibilité et les effets SEO. 1. Utilisé pour des blocs de contenu indépendants, tels que des articles de blog ou des commentaires, il doit être autonome; 2. Utilisé pour le contenu lié à la classification, incluant généralement des titres, et convient à différents modules de la page; 3. Utilisé pour les informations auxiliaires liées au contenu principal mais pas au c?ur, telles que les recommandations de barres latérales ou les profils d'auteur. Dans le développement réel, les étiquettes doivent être combinées et autres, éviter une nidification excessive, garder la structure simple et vérifier la rationalité de la structure via les outils du développeur.

Il existe deux fa?ons de créer un tableau en PHP: utilisez la fonction Array () ou utilisez des supports []. 1. L'utilisation de la fonction Array () est une manière traditionnelle, avec une bonne compatibilité. Définir des tableaux d'index tels que $ fruits = array ("Apple", "banana", "orange") et des tableaux associatifs tels que $ user = array ("name" => "John", "age" => 25); 2. L'utilisation de [] est un moyen plus simple de prendre en charge depuis PHP5.4, comme $ couleur

Lorsque vous rencontrez l'invite "Cette opération nécessite une escalade des autorisations", cela signifie que vous avez besoin d'autorisations d'administrateur pour continuer. Les solutions incluent: 1. Cliquez avec le bouton droit sur le programme "Exécuter en tant qu'administrateur" ou définissez le raccourci pour toujours exécuter en tant qu'administrateur; 2. Vérifiez si le compte courant est un compte administrateur, sinon, commutateur ou demande d'assistance administratrice; 3. Utiliser les autorisations de l'administrateur pour ouvrir une invite de commande ou PowerShell pour exécuter des commandes pertinentes; 4. contourner les restrictions en obtenant la propriété du fichier ou en modifiant le registre lorsque cela est nécessaire, mais ces opérations doivent être prudentes et comprendre pleinement les risques. Confirmer l'identité de l'autorisation et essayer les méthodes ci-dessus résolvez généralement le problème.

La fa?on de traiter les données du post brut en php est d'utiliser $ rawdata = file_get_contents ('php: // entrée'), qui convient à la réception de JSON, XML ou d'autres données de format personnalisées. 1.Php: // L'entrée est un flux en lecture seule, qui n'est valide que dans les demandes de poste; 2. Les problèmes courants incluent la configuration du serveur ou les flux d'entrée de lecture du middleware, ce qui rend impossible l'obtention de données; 3. 4. La différence par rapport à $ _POST est que $ _post analyse automatiquement les données de formulaire standard, tandis que les données d'origine conviennent aux formats non standard et permet l'analyse manuelle; 5. HTM ordinaire

Pour gérer en toute sécurité les téléchargements de fichiers PHP, vous devez vérifier la source et taper, contr?ler le nom et le chemin du fichier, définir les restrictions du serveur et traiter les fichiers multimédias deux fois. 1. Vérifiez la source de téléchargement pour empêcher le CSRF via le jeton et détecter le type de mime réel via FINFO_FILE en utilisant le contr?le de liste blanche; 2. Renommez le fichier à une cha?ne aléatoire et déterminez l'extension pour la stocker dans un répertoire non Web en fonction du type de détection; 3. La configuration PHP limite la taille de téléchargement et le répertoire temporaire Nginx / Apache interdit l'accès au répertoire de téléchargement; 4. La bibliothèque GD résait les images pour effacer des données malveillantes potentielles.

INPHP, VariablesRaSepassedByValueByDefault, ce qui signifie que les fonctionnalités sont de réception de produits de réception.
