1. <thead id="dlqeh"></thead> BodyIdAttribute?><\/span><\/span>><\/span><\/span><\/pre>\n\n

      4. Encourage les tests <\/h2>\n

      yii est étroitement intégré à la codeceception. CodeCection est un excellent cadre de test PHP qui aide à simplifier le processus de création de tests d'unité, de fonctionnement et d'acceptation pour votre application. Parce que vous écrivez des tests automatisés pour toutes vos applications, non? <\/p>\n

      L'extension CodeCection facilite la configuration de votre application pendant les tests. Modifiez simplement le fichier fourni \/tests \/_config.php fourni pour configurer votre application de test. Par exemple: <\/p>\n\n

      return [\n<\/span>    \/\/ ...\n<\/span>    'components' => [\n<\/span>        \/\/ ...\n<\/span>        'view' => [\n<\/span>            'class' => 'app\\components\\View'\n<\/span>        ]   \n<\/span>    ]\n<\/span>];<\/span><\/pre>\n\n

      En utilisant cette configuration, ce qui suit se produirait: <\/p>\n

        \n
      1. Tous les e-mails envoyés lors de vos tests fonctionnels et d'acceptation seraient écrits dans un fichier au lieu d'être envoyé. <\/li>\n
      2. Les URL de vos tests prendraient le format index.php \/ contr?leur \/ action plut?t que \/ contr?leur \/ action <\/li>\n
      3. Vos tests utiliseraient votre base de données de test, plut?t que votre base de données de production. <\/li>\n<\/ol>\n

        Un module spécial pour le framework YII existe également dans CodeCeception. Il ajoute plusieurs méthodes à la classe Testguy, qui vous aide à travailler avec un enregistrement actif (ORM de YII) lors des tests fonctionnels. Par exemple, si vous vouliez voir si votre formulaire d'enregistrement a créé avec succès un nouvel utilisateur avec le nom d'utilisateur ?TesUser?, vous pouvez effectuer ce qui suit: <\/p>\n\n\n

        return [\n<\/span>    'components' => [\n<\/span>        'mail' => [\n<\/span>            'useFileTransport' => true,\n<\/span>        ],\n<\/span>        'urlManager' => [\n<\/span>            'showScriptName' => true,\n<\/span>        ],\n<\/span>        'db' => [\n<\/span>                'dsn' => 'mysql:host=localhost;dbname=mysqldb_test',\n<\/span>        ],\n<\/span>    ],\n<\/span>];<\/span><\/pre>\n\n\n\n

        5. Simplifie la sécurité <\/h2>\n

        La sécurité est une partie cruciale de toute application Web, et heureusement, YII a d'excellentes fonctionnalités pour vous aider à vous faciliter l'esprit. <\/p>\n

        yii est livré avec un composant d'application de sécurité qui expose plusieurs méthodes pour aider à créer une application plus sécurisée. Certaines des méthodes les plus utiles sont: <\/p>\n

          \n
        • GeneratePasswordHash: génère un hachage sécurisé à partir d'un mot de passe et d'un sel aléatoire. Cette méthode fait un sel aléatoire pour vous, puis crée un hachage à partir de la cha?ne fournie en utilisant la fonction de crypte de PHP. <\/li>\n
        • ValiderPassword: il s'agit de la fonction complémentaire pour générerPasswordhash, et vous permet de vérifier si le mot de passe fourni par l'utilisateur correspond à votre hachage stocké. <\/li>\n
        • GeneraterandomKey: vous permet de créer une cha?ne aléatoire de toute longueur <\/li>\n<\/ul>\n

          yii vérifie automatiquement un jeton CSRF valide sur toutes les méthodes de demande HTTP dangereuses (put, publier, supprimer), et générera et sortira un jeton lorsque vous utilisez la méthode ActiveForm :: Begin () pour créer votre balise de formulaire d'ouverture. Cette fonctionnalité peut être désactivée en modifiant votre fichier de configuration principal pour inclure les éléments suivants: <\/p>\n\n

          use yii\\helpers\\Html<\/span>;<\/span><\/pre>\n\n

          Afin de protéger contre les XS, YII fournit une autre classe d'assistance appelée htmlpurifier. Cette classe a une seule méthode statique nommée processus et filtrera votre sortie à l'aide de la bibliothèque de filtre populaire du même nom. <\/p>\n

          yii comprend également des cours prêts à l'emploi pour l'authentification et l'autorisation des utilisateurs. L'autorisation est divisée en deux types: ACF (filtres de contr?le d'accès) et RBAC (contr?le d'accès basé sur les r?les). <\/p>\n

          Le plus simple des deux est ACF et est implémenté en ajoutant ce qui suit à la méthode des comportements de votre contr?leur: <\/p>\n\n

          public static $aliases = ['@yii' => __DIR__];<\/span><\/pre>\n\n

          Le code précédent indique que DefaultContrOrto permet aux utilisateurs invités d'accéder aux actions de connexion et d'afficher, mais pas de la création d'action. (? Est un alias pour les utilisateurs anonymes, et @ fait référence aux utilisateurs authentifiés). <\/p>\n

          RBAC est une méthode plus puissante pour spécifier quels utilisateurs peuvent effectuer des actions spécifiques dans votre application. Cela implique de créer des r?les pour vos utilisateurs, de définir des autorisations pour votre application, puis d'activer ces autorisations pour leurs r?les prévus. Vous pouvez utiliser cette méthode si vous vouliez créer un r?le de modérateur et permettre à tous les utilisateurs attribués à ce r?le d'approuver les articles. <\/p>\n

          Vous pouvez également définir des règles à l'aide de RBAC, qui vous permettent, dans des conditions spécifiques, d'accorder l'accès à certains aspects de votre demande. Par exemple, vous pouvez créer une règle qui permet aux utilisateurs de modifier leurs propres articles, mais pas ceux créés par d'autres. <\/p>\n

          6. Raccourcir le temps de développement <\/h2>\n

          La plupart des projets impliquent une certaine quantité de taches répétitives avec lesquelles personne ne veut perdre de temps. Yii nous donne quelques outils pour vous aider à passer moins de temps sur ces taches, et plus de temps à personnaliser votre application pour répondre aux besoins de vos clients. <\/p>\n

          L'un des plus puissants de ces outils est appelé ?gii?. GII est un outil d'échafaudage de code basé sur le Web, qui vous permet de créer rapidement des modèles de code pour: <\/p>\n

            \n
          • modèles <\/li>\n
          • contr?leurs <\/li>\n
          • Formulaires <\/li>\n
          • modules <\/li>\n
          • Extensions <\/li>\n
          • Actions et vues du contr?leur crud <\/li>\n<\/ul>\n

            gii est très configurable. Vous pouvez le définir sur le chargement uniquement dans certains environnements. Modifiez simplement votre fichier de configuration Web comme suit: <\/p>\n

            use yii\\helpers\\Html<\/span>;<\/span><\/pre>\n\n

            Cela garantit que GII ne se chargera que lorsque la variable d'environnement YII est définie sur Development <\/em>, et qu'elle ne se chargera que lorsqu'il est accessible via LocalHost. <\/p>\n

            Maintenant, jetons un coup d'?il au générateur de modèle: <\/p>\n

            \"7 <\/p>\n

            Le nom de la table utilise un widget Typeahead pour essayer de deviner à quel tableau est associé à votre modèle, et tous les champs ont une info-bulle de roulement pour vous rappeler comment les remplir. Vous pouvez prévisualiser le code avant de demander à GII de le générer, et tous les modèles de code sont entièrement personnalisables. <\/p>\n

            Il existe également plusieurs outils de ligne de commande disponibles pour aider à créer des modèles de code pour les migrations de base de données, les traductions de messages (I18N) et les fixations de base de données pour vos tests automatisés. Par exemple, vous pouvez créer un nouveau fichier de migration de base de données avec cette commande: <\/p>\n\n

            public static $aliases = ['@yii' => __DIR__];<\/span><\/pre>\n\n

            Cela créera un nouveau modèle de migration dans {appdir} \/ migrations qui ressemble à ceci: <\/p>\n\n

            namespace app\\components<\/span>;\n<\/span>\nclass View extends yii\\web\\View<\/span> {\n<\/span>\n    public $bodyId;\n<\/span>\n    \/* Yii allows you to add magic getter methods by prefacing method names with \"get\" *\/\n<\/span>\n    public function getBodyIdAttribute() {\n<\/span>        return ($this->bodyId != '') ? '' : '';\n<\/span>    }\n<\/span>\n}<\/span><\/pre>\n\n

            Alors, disons que je voulais ajouter quelques colonnes à ce tableau. J'ajouterais simplement ce qui suit à la méthode UP: <\/p>\n\n\n

            
            

            国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

            BodyIdAttribute?><\/span><\/span>><\/span><\/span><\/pre>\n\n

            Et puis pour m'assurer que je peux inverser la migration, je modifierais la méthode Down: <\/p>\n\n

            return [\n<\/span>    \/\/ ...\n<\/span>    'components' => [\n<\/span>        \/\/ ...\n<\/span>        'view' => [\n<\/span>            'class' => 'app\\components\\View'\n<\/span>        ]   \n<\/span>    ]\n<\/span>];<\/span><\/pre>\n\n

            La création du tableau impliquerait simplement l'exécution d'une commande sur la ligne de commande: <\/p>\n\n

            return [\n<\/span>    'components' => [\n<\/span>        'mail' => [\n<\/span>            'useFileTransport' => true,\n<\/span>        ],\n<\/span>        'urlManager' => [\n<\/span>            'showScriptName' => true,\n<\/span>        ],\n<\/span>        'db' => [\n<\/span>                'dsn' => 'mysql:host=localhost;dbname=mysqldb_test',\n<\/span>        ],\n<\/span>    ],\n<\/span>];<\/span><\/pre>\n\n

            et pour supprimer le tableau: <\/p>\n\n

            $I->amOnPage('register');\n<\/span>$I->fillField('username', 'testuser');\n<\/span>$I->fillField('password', 'qwerty');\n<\/span>$I->click('Register');\n<\/span>$I->seeRecord('app\\models\\User', array('name' => 'testuser'));<\/span><\/pre>\n\n

            7. Facile à régler pour de meilleures performances <\/h2>\n

            Tout le monde sait qu'un site Web lent crée des utilisateurs mécontents, donc YII vous fournit plusieurs outils pour vous aider à extraire plus de vitesse de votre application. <\/p>\n

            Tous les composants de cache de Yii s'étendent à partir de yii \/ mise en cache \/ cache, qui vous permet de choisir le système de mise en cache que vous voulez tout en utilisant une API commune. Vous pouvez même enregistrer plusieurs composants de cache simultanément. YII prend actuellement en charge la mise en cache de base de données et du système de fichiers, ainsi que APC, Memcache, Redis, WinCache, Xcache et Zend Data Cache. <\/p>\n

            Par défaut, si vous utilisez un enregistrement actif, YII exécute une requête supplémentaire pour déterminer le schéma des tableaux impliqués dans la génération de votre modèle. Vous pouvez définir l'application sur cache ces schéma en modifiant votre fichier de configuration principal comme suit: <\/p>\n\n

            return [\n<\/span>        'components' => [\n<\/span>            'request' => [\n<\/span>                'enableCsrfValidation' => false,\n<\/span>            ]\n<\/span>    ];<\/span><\/pre>\n\n

            Enfin, YII a un outil de ligne de commande pour faciliter la minification des actifs frontaux. Exécutez simplement la commande suivante pour générer un modèle de configuration: <\/p>\n\n

            use yii\\filters\\AccessControl<\/span>;\n<\/span>\nclass DefaultController extends Controller {\n<\/span>    \/\/ ...\n<\/span>    public function behaviors() {\n<\/span>        return [\n<\/span>            \/\/ ...\n<\/span>            'class' => AccessControl::<\/span>className(),\n<\/span>            'only' => ['create', 'login', 'view'],\n<\/span>                'rules' => [\n<\/span>                [\n<\/span>                    'allow' => true,\n<\/span>                    'actions' => ['login', 'view'],\n<\/span>                    'roles' => ['?']\n<\/span>                ],\n<\/span>                [\n<\/span>                    'allow' => true,\n<\/span>                    'actions' => ['create'],\n<\/span>                    'roles' => ['@']\n<\/span>                ]\n<\/span>            ]\n<\/span>        ];\n<\/span>    }\n<\/span>    \/\/ ...\n<\/span>}<\/span><\/pre>\n\n

            Ensuite, modifiez la configuration pour spécifier les outils que vous souhaitez effectuer votre minification (par exemple le compilateur de fermeture, le compresseur YUI ou UglifyJS). Le modèle de configuration généré ressemblera à ceci: <\/p>\n\n

            if (YII_ENV_DEV) {\n<\/span>    \/\/ ...\n<\/span>    $config['modules']['gii'] = [\n<\/span>        'class' => 'yii\\gii\\Module',\n<\/span>        'allowedIPs' => ['127.0.0.1', '::1']\n<\/span>    ]\n<\/span>}<\/span><\/pre>\n\n

            Ensuite, exécutez cette commande de console afin d'effectuer la compression. <\/p>\n\n

            yii migrate\/create create_user_table<\/span><\/pre>\n\n

            Et enfin, modifiez votre fichier de configuration d'application Web pour utiliser les actifs compressés. <\/p>\n\n

            <\/span>\n<\/span>    use yii\\db\\Schema<\/span>;\n<\/span><\/span>\n<\/span>    class m140924_153425_create_user_table extends \\yii\\db\\Migration<\/span>\n<\/span><\/span>    {\n<\/span><\/span>        public function up()\n<\/span><\/span>        {\n<\/span><\/span>\n<\/span>        }\n<\/span><\/span>\n<\/span>        public function down()\n<\/span><\/span>        {\n<\/span><\/span>            echo \"m140924_153425_create_user_table cannot be reverted.\\n\";\n<\/span><\/span>\n<\/span>            return false;\n<\/span><\/span>        }\n<\/span><\/span>}<\/span><\/span><\/pre>\n\n

            Remarque: <\/em> Vous devrez télécharger et installer ces outils externes manuellement. <\/p>\n

            Conclusion <\/h2>\n

            Comme tout bon cadre, YII vous aide à créer rapidement des applications Web modernes et à vous assurer qu'ils fonctionnent bien. Il vous pousse à créer des sites sécurisés et testables en faisant une grande partie de la durée de travail pour vous. Vous pouvez facilement utiliser la plupart de ses fonctionnalités exactement telles qu'elles sont fournies, ou vous pouvez modifier chacune pour répondre à vos besoins. Je vous encourage vraiment à le vérifier pour votre prochain projet Web! <\/p>\n

            Avez-vous essayé yii 2? Veux-tu? Faites-nous savoir! <\/p>\n\n\n\n

            Questions fréquemment posées (FAQ) sur YII 2 Framework <\/h2>\n\n\n\n

            Pourquoi le cadre YII 2 est-il considéré comme très extensible? <\/h3>

            Le cadre YII 2 est considéré comme très extensible car il permet aux développeurs de personnaliser presque chaque élément du code du noyau. Cela signifie que si un développeur doit ajuster la fa?on dont le cadre gère certaines taches, il peut le faire sans avoir à modifier directement le code de base. Il s'agit d'un avantage significatif car il permet un degré élevé de flexibilité et d'adaptabilité, ce qui facilite l'adaptation du cadre pour répondre aux exigences spécifiques du projet. <\/p>

            Comment le cadre YII 2 assure-t-il des performances élevées? <\/h3>

            Le cadre YII 2 assure des performances élevées grace à sa technique de chargement paresseuse efficace. Cela signifie qu'il ne charge que les composants nécessaires à un processus particulier, réduisant ainsi la charge sur le serveur et améliorant les performances globales de l'application. De plus, YII 2 prend également en charge la mise en cache des données, ce qui améliore encore ses performances. <\/p>

            Qu'est-ce qui fait de Yii 2 Framework un choix sécurisé pour le développement Web? <\/h3>

            YII 2 Le cadre a des fonctionnalités de sécurité robustes intégrées dans son c?ur . Il fournit des outils intégrés pour la validation des entrées, le filtrage des sorties, la prévention de l'injection SQL et la prévention des scripts croisés (XSS). Ces fonctionnalités en font un choix sécurisé pour développer des applications Web qui doivent gérer les données sensibles. <\/p>

            Comment le cadre YII 2 prend-il en charge un développement rapide? <\/h3>

            YII 2 Framework prend en charge un développement rapide grace à sa puissante génération de code outil, gii. GII permet aux développeurs de générer rapidement du code pour les modèles, les contr?leurs, les formulaires, les modules et les extensions. Cela réduit considérablement le temps nécessaire pour rédiger du code de passe-partout, permettant aux développeurs de se concentrer davantage sur la logique métier. <\/p>

            Puis-je utiliser du code tiers avec le framework YII 2? <\/h3>

            Oui, Yii 2 Framework est con?u pour fonctionner de manière transparente avec du code tiers. Il utilise le Composer Dependency Manager, ce qui facilite l'intégration de bibliothèques et de packages tiers dans votre application YII 2. <\/p>

            Comment le cadre YII 2 gère-t-il les erreurs et les exceptions? <\/h3>

            YII 2 Framework A un système complet de gestion des erreurs et de journalisation. Il peut gérer à la fois les erreurs PHP et les exceptions, et il fournit une variété de cibles de journalisation, y compris des fichiers, des e-mails et des consoles de navigateur. Cela facilite le débogage et la résolution des problèmes dans votre application. <\/p>\n

            Le framework YII 2 est-il adapté au développement d'applications Web complexes? <\/h3>

            Oui, le cadre YII 2 est bien adapté pour développer des applications Web complexes. Il fournit une gamme d'outils et de fonctionnalités, tels que l'architecture MVC, les couches d'abstraction de la base de données et le support de mise en cache, qui facilite la création et le maintien d'applications complexes. <\/p>

            Comment le cadre YII 2 prend-il en charge l'internationalisation? <\/h3>

            YII 2 Framework fournit un soutien étendu à l'internationalisation (I18N). Il comprend des fonctionnalités de formatage de date et d'heure, de formatage des nombres et de traduction de messages, ce qui facilite le développement d'applications pour un public mondial. <\/p>

            Quel type de soutien communautaire est disponible pour le framework YII 2? <\/h3>

            Le cadre YII 2 a une grande communauté de développeurs. Il existe de nombreux forums, blogs et tutoriels disponibles en ligne où vous pouvez trouver de l'aide et des conseils. De plus, le site Web officiel de YII fournit une documentation complète et un guide de l'utilisateur. <\/p>

            Comment le cadre YII 2 se compare-t-il à d'autres cadres PHP? <\/h3>

            YII 2 Framework ressort des autres cadres PHP en raison de son haut Performances, fonctionnalités de sécurité et extensibilité. Il soutient également le développement rapide, ce qui en fait un choix populaire pour les projets à petite et à grande échelle. Cependant, le meilleur cadre pour un projet dépend des exigences spécifiques et de l'expertise de l'équipe de développement. <\/p>"}

            Table des matières
            Les plats clés
            1. Facile à installer
            2. Utilise les technologies modernes
            3. Hautement extensible
            4. Encourage les tests
            5. Simplifie la sécurité
            6. Raccourcir le temps de développement
            7. Facile à régler pour de meilleures performances
            Conclusion
            Questions fréquemment posées (FAQ) sur YII 2 Framework
            Pourquoi le cadre YII 2 est-il considéré comme très extensible?
            Comment le cadre YII 2 assure-t-il des performances élevées?
            Qu'est-ce qui fait de Yii 2 Framework un choix sécurisé pour le développement Web?
            Comment le cadre YII 2 prend-il en charge un développement rapide?
            Puis-je utiliser du code tiers avec le framework YII 2?
            Comment le cadre YII 2 gère-t-il les erreurs et les exceptions?
            Le framework YII 2 est-il adapté au développement d'applications Web complexes?
            Comment le cadre YII 2 prend-il en charge l'internationalisation?
            Quel type de soutien communautaire est disponible pour le framework YII 2?
            Comment le cadre YII 2 se compare-t-il à d'autres cadres PHP?
            Maison développement back-end tutoriel php 7 raisons de choisir le cadre YII 2

            7 raisons de choisir le cadre YII 2

            Feb 19, 2025 am 09:37 AM

            7 raisons de choisir le cadre YII 2

            à la fin de l'année dernière, SitePoint a publié un article mettant en évidence les meilleurs cadres PHP. à égalité pour la place numéro quatre, le framework YII (prononcé yee ). à cette époque, la dernière version du cadre disponible était 1.1.14. Récemment, YII 2.0 a été mis à disposition, vous pouvez donc commencer à l'utiliser en production.

            Bien que nous l'ayons couvert récemment quand il était encore en statut RC, il a juste atteint le statut de version complète, et nous avons l'impression qu'il est temps de revoir le sujet avec certaines raisons de le choisir par rapport aux alternatives.

            Les plats clés

            • yii 2 framework est facile à installer, faisant gagner du temps aux développeurs avec son processus d'installation et de configuration simple, manipulé à l'aide de composer.
            • Le cadre utilise des technologies modernes, fonctionnant comme un cadre Pure OOP et tirant parti des fonctionnalités avancées de PHP comme la liaison statique tardive, les classes et les interfaces SPL et les fonctions anonymes.
            • yii 2 est très extensible, permettant à pratiquement chaque composant du cadre de personnaliser pour répondre aux besoins spécifiques.
            • Le framework encourage les tests, étant étroitement intégrés à CodeCeception, un cadre de test PHP qui simplifie le processus de création de tests d'unité, de fonction et d'acceptation.
            • yii 2 simplifie la sécurité avec son composant d'application de sécurité, qui expose plusieurs méthodes pour aider à créer une application sécurisée. Il comprend également des cours prêts à l'emploi pour l'authentification et l'autorisation des utilisateurs.

            1. Facile à installer

            Pour les développeurs Web, le temps est de l'argent et personne ne veut passer son précieux temps sur un processus d'installation et de configuration compliquée.

            L'installation est gérée à l'aide du compositeur. Si vous voulez une description du processus d'installation, SitePoint a récemment publié un excellent article ici. J'ai tendance à favoriser l'utilisation du modèle d'application de base, même lorsque mon site a un composant front et backend séparé. Au lieu de cela, je choisis d'utiliser un module pour la partie backend de mes sites. (Les modules YII sont mieux décrits comme des mini-applications qui résident dans votre application principale).

            Remarque : De nombreuses références de répertoire dans des exemples ultérieures utilisent la structure du répertoire du modèle simple.

            2. Utilise les technologies modernes

            yii est un framework Pure OOP, et tire parti de certaines des fonctionnalités les plus avancées de PHP, y compris la liaison statique tardive, les classes et les interfaces SPL et les fonctions anonymes.

            Toutes les classes sont en espionnée de noms, ce qui vous permet de profiter de leur autoader conforme PSR-4. Cela signifie que l'inclusion de la classe HTML HTML de YII est aussi simple que:

            <span>use yii<span>\helpers\Html</span>;</span>

            yii vous permet également de définir des alias pour vous aider à simplifier vos espaces de noms. Dans l'exemple ci-dessus, cette instruction UTILISAGE chargera une définition de classe qui est située par défaut dans le répertoire / fournisseur / yiisoft / yii2 / assistants. Cet alias est défini dans la classe de baseyii sur la ligne 79:

            <span>use yii<span>\helpers\Html</span>;</span>

            Le framework lui-même est installé à l'aide du compositeur, tout comme ses extensions. Même le processus de publication des extensions est aussi simple que de créer votre propre composer.json, d'héberger votre code chez GitHub et de répertorier votre extension sur Packagist.

            3. Hautement extensible

            yii est comme un costume qui a l'air super hors du rack, mais qui est également très facile à adapter à vos besoins. Presque tous les composants du cadre sont extensibles. Un exemple simple est l'ajout d'un ID corporel unique à vos vues. (Au cas où vous souhaitez savoir pourquoi vous voudrez peut-être le faire, jetez un ?il à cet article).

            Tout d'abord, je créerais un fichier dans mon répertoire AppComponents avec le nom View.php, et ajouter ce qui suit:

            <span>public static $aliases = ['@yii' => __DIR__];</span>

            Ensuite, dans mon fichier de mise en page principal (AppViewslayoutsmain.php), j'ajouterais ce qui suit à la balise corporelle de mon HTML:

            <span>namespace app<span>\components</span>;
            </span>
            <span>class View extends yii<span>\web\View</span> {
            </span>
                <span>public $bodyId;
            </span>
                <span>/* Yii allows you to add magic getter methods by prefacing method names with "get" */
            </span>
                <span>public function getBodyIdAttribute() {
            </span>        <span>return ($this->bodyId != '') ? '' : '';
            </span>    <span>}
            </span>
            <span>}</span>

            Et enfin, j'ajouterais ce qui suit à mon fichier de configuration principal pour informer Yii pour utiliser ma classe de vue étendue au lieu de sa propre défaut:

            <span><span><span><body</span> <span><span><?=$this->BodyIdAttribute?></span></span>></span></span>

            4. Encourage les tests

            yii est étroitement intégré à la codeceception. CodeCection est un excellent cadre de test PHP qui aide à simplifier le processus de création de tests d'unité, de fonctionnement et d'acceptation pour votre application. Parce que vous écrivez des tests automatisés pour toutes vos applications, non?

            L'extension CodeCection facilite la configuration de votre application pendant les tests. Modifiez simplement le fichier fourni /tests /_config.php fourni pour configurer votre application de test. Par exemple:

            <span>return [
            </span>    <span>// ...
            </span>    <span>'components' => [
            </span>        <span>// ...
            </span>        <span>'view' => [
            </span>            <span>'class' => 'app\components\View'
            </span>        <span>]   
            </span>    <span>]
            </span><span>];</span>

            En utilisant cette configuration, ce qui suit se produirait:

            1. Tous les e-mails envoyés lors de vos tests fonctionnels et d'acceptation seraient écrits dans un fichier au lieu d'être envoyé.
            2. Les URL de vos tests prendraient le format index.php / contr?leur / action plut?t que / contr?leur / action
            3. Vos tests utiliseraient votre base de données de test, plut?t que votre base de données de production.

            Un module spécial pour le framework YII existe également dans CodeCeception. Il ajoute plusieurs méthodes à la classe Testguy, qui vous aide à travailler avec un enregistrement actif (ORM de YII) lors des tests fonctionnels. Par exemple, si vous vouliez voir si votre formulaire d'enregistrement a créé avec succès un nouvel utilisateur avec le nom d'utilisateur ?TesUser?, vous pouvez effectuer ce qui suit:

            <span>return [
            </span>    <span>'components' => [
            </span>        <span>'mail' => [
            </span>            <span>'useFileTransport' => true,
            </span>        <span>],
            </span>        <span>'urlManager' => [
            </span>            <span>'showScriptName' => true,
            </span>        <span>],
            </span>        <span>'db' => [
            </span>                <span>'dsn' => 'mysql:host=localhost;dbname=mysqldb_test',
            </span>        <span>],
            </span>    <span>],
            </span><span>];</span>

            5. Simplifie la sécurité

            La sécurité est une partie cruciale de toute application Web, et heureusement, YII a d'excellentes fonctionnalités pour vous aider à vous faciliter l'esprit.

            yii est livré avec un composant d'application de sécurité qui expose plusieurs méthodes pour aider à créer une application plus sécurisée. Certaines des méthodes les plus utiles sont:

            • GeneratePasswordHash: génère un hachage sécurisé à partir d'un mot de passe et d'un sel aléatoire. Cette méthode fait un sel aléatoire pour vous, puis crée un hachage à partir de la cha?ne fournie en utilisant la fonction de crypte de PHP.
            • ValiderPassword: il s'agit de la fonction complémentaire pour générerPasswordhash, et vous permet de vérifier si le mot de passe fourni par l'utilisateur correspond à votre hachage stocké.
            • GeneraterandomKey: vous permet de créer une cha?ne aléatoire de toute longueur

            yii vérifie automatiquement un jeton CSRF valide sur toutes les méthodes de demande HTTP dangereuses (put, publier, supprimer), et générera et sortira un jeton lorsque vous utilisez la méthode ActiveForm :: Begin () pour créer votre balise de formulaire d'ouverture. Cette fonctionnalité peut être désactivée en modifiant votre fichier de configuration principal pour inclure les éléments suivants:

            <span>use yii<span>\helpers\Html</span>;</span>

            Afin de protéger contre les XS, YII fournit une autre classe d'assistance appelée htmlpurifier. Cette classe a une seule méthode statique nommée processus et filtrera votre sortie à l'aide de la bibliothèque de filtre populaire du même nom.

            yii comprend également des cours prêts à l'emploi pour l'authentification et l'autorisation des utilisateurs. L'autorisation est divisée en deux types: ACF (filtres de contr?le d'accès) et RBAC (contr?le d'accès basé sur les r?les).

            Le plus simple des deux est ACF et est implémenté en ajoutant ce qui suit à la méthode des comportements de votre contr?leur:

            <span>public static $aliases = ['@yii' => __DIR__];</span>

            Le code précédent indique que DefaultContrOrto permet aux utilisateurs invités d'accéder aux actions de connexion et d'afficher, mais pas de la création d'action. (? Est un alias pour les utilisateurs anonymes, et @ fait référence aux utilisateurs authentifiés).

            RBAC est une méthode plus puissante pour spécifier quels utilisateurs peuvent effectuer des actions spécifiques dans votre application. Cela implique de créer des r?les pour vos utilisateurs, de définir des autorisations pour votre application, puis d'activer ces autorisations pour leurs r?les prévus. Vous pouvez utiliser cette méthode si vous vouliez créer un r?le de modérateur et permettre à tous les utilisateurs attribués à ce r?le d'approuver les articles.

            Vous pouvez également définir des règles à l'aide de RBAC, qui vous permettent, dans des conditions spécifiques, d'accorder l'accès à certains aspects de votre demande. Par exemple, vous pouvez créer une règle qui permet aux utilisateurs de modifier leurs propres articles, mais pas ceux créés par d'autres.

            6. Raccourcir le temps de développement

            La plupart des projets impliquent une certaine quantité de taches répétitives avec lesquelles personne ne veut perdre de temps. Yii nous donne quelques outils pour vous aider à passer moins de temps sur ces taches, et plus de temps à personnaliser votre application pour répondre aux besoins de vos clients.

            L'un des plus puissants de ces outils est appelé ?gii?. GII est un outil d'échafaudage de code basé sur le Web, qui vous permet de créer rapidement des modèles de code pour:

            • modèles
            • contr?leurs
            • Formulaires
            • modules
            • Extensions
            • Actions et vues du contr?leur crud

            gii est très configurable. Vous pouvez le définir sur le chargement uniquement dans certains environnements. Modifiez simplement votre fichier de configuration Web comme suit:

            <span>use yii<span>\helpers\Html</span>;</span>

            Cela garantit que GII ne se chargera que lorsque la variable d'environnement YII est définie sur Development , et qu'elle ne se chargera que lorsqu'il est accessible via LocalHost.

            Maintenant, jetons un coup d'?il au générateur de modèle:

            7 raisons de choisir le cadre YII 2

            Le nom de la table utilise un widget Typeahead pour essayer de deviner à quel tableau est associé à votre modèle, et tous les champs ont une info-bulle de roulement pour vous rappeler comment les remplir. Vous pouvez prévisualiser le code avant de demander à GII de le générer, et tous les modèles de code sont entièrement personnalisables.

            Il existe également plusieurs outils de ligne de commande disponibles pour aider à créer des modèles de code pour les migrations de base de données, les traductions de messages (I18N) et les fixations de base de données pour vos tests automatisés. Par exemple, vous pouvez créer un nouveau fichier de migration de base de données avec cette commande:

            <span>public static $aliases = ['@yii' => __DIR__];</span>

            Cela créera un nouveau modèle de migration dans {appdir} / migrations qui ressemble à ceci:

            <span>namespace app<span>\components</span>;
            </span>
            <span>class View extends yii<span>\web\View</span> {
            </span>
                <span>public $bodyId;
            </span>
                <span>/* Yii allows you to add magic getter methods by prefacing method names with "get" */
            </span>
                <span>public function getBodyIdAttribute() {
            </span>        <span>return ($this->bodyId != '') ? '' : '';
            </span>    <span>}
            </span>
            <span>}</span>

            Alors, disons que je voulais ajouter quelques colonnes à ce tableau. J'ajouterais simplement ce qui suit à la méthode UP:

            <span><span><span><body</span> <span><span><?=$this->BodyIdAttribute?></span></span>></span></span>

            Et puis pour m'assurer que je peux inverser la migration, je modifierais la méthode Down:

            <span>return [
            </span>    <span>// ...
            </span>    <span>'components' => [
            </span>        <span>// ...
            </span>        <span>'view' => [
            </span>            <span>'class' => 'app\components\View'
            </span>        <span>]   
            </span>    <span>]
            </span><span>];</span>

            La création du tableau impliquerait simplement l'exécution d'une commande sur la ligne de commande:

            <span>return [
            </span>    <span>'components' => [
            </span>        <span>'mail' => [
            </span>            <span>'useFileTransport' => true,
            </span>        <span>],
            </span>        <span>'urlManager' => [
            </span>            <span>'showScriptName' => true,
            </span>        <span>],
            </span>        <span>'db' => [
            </span>                <span>'dsn' => 'mysql:host=localhost;dbname=mysqldb_test',
            </span>        <span>],
            </span>    <span>],
            </span><span>];</span>

            et pour supprimer le tableau:

            <span>$I->amOnPage('register');
            </span><span>$I->fillField('username', 'testuser');
            </span><span>$I->fillField('password', 'qwerty');
            </span><span>$I->click('Register');
            </span><span>$I->seeRecord('app\models\User', array('name' => 'testuser'));</span>

            7. Facile à régler pour de meilleures performances

            Tout le monde sait qu'un site Web lent crée des utilisateurs mécontents, donc YII vous fournit plusieurs outils pour vous aider à extraire plus de vitesse de votre application.

            Tous les composants de cache de Yii s'étendent à partir de yii / mise en cache / cache, qui vous permet de choisir le système de mise en cache que vous voulez tout en utilisant une API commune. Vous pouvez même enregistrer plusieurs composants de cache simultanément. YII prend actuellement en charge la mise en cache de base de données et du système de fichiers, ainsi que APC, Memcache, Redis, WinCache, Xcache et Zend Data Cache.

            Par défaut, si vous utilisez un enregistrement actif, YII exécute une requête supplémentaire pour déterminer le schéma des tableaux impliqués dans la génération de votre modèle. Vous pouvez définir l'application sur cache ces schéma en modifiant votre fichier de configuration principal comme suit:

            <span>return [
            </span>        <span>'components' => [
            </span>            <span>'request' => [
            </span>                <span>'enableCsrfValidation' => false,
            </span>            <span>]
            </span>    <span>];</span>

            Enfin, YII a un outil de ligne de commande pour faciliter la minification des actifs frontaux. Exécutez simplement la commande suivante pour générer un modèle de configuration:

            <span>use yii<span>\filters\AccessControl</span>;
            </span>
            <span>class DefaultController extends Controller {
            </span>    <span>// ...
            </span>    <span>public function behaviors() {
            </span>        <span>return [
            </span>            <span>// ...
            </span>            <span>'class' => AccessControl<span>::</span>className(),
            </span>            <span>'only' => ['create', 'login', 'view'],
            </span>                <span>'rules' => [
            </span>                <span>[
            </span>                    <span>'allow' => true,
            </span>                    <span>'actions' => ['login', 'view'],
            </span>                    <span>'roles' => ['?']
            </span>                <span>],
            </span>                <span>[
            </span>                    <span>'allow' => true,
            </span>                    <span>'actions' => ['create'],
            </span>                    <span>'roles' => ['@']
            </span>                <span>]
            </span>            <span>]
            </span>        <span>];
            </span>    <span>}
            </span>    <span>// ...
            </span><span>}</span>

            Ensuite, modifiez la configuration pour spécifier les outils que vous souhaitez effectuer votre minification (par exemple le compilateur de fermeture, le compresseur YUI ou UglifyJS). Le modèle de configuration généré ressemblera à ceci:

            <span>if (YII_ENV_DEV) {
            </span>    <span>// ...
            </span>    <span>$config['modules']['gii'] = [
            </span>        <span>'class' => 'yii\gii\Module',
            </span>        <span>'allowedIPs' => ['127.0.0.1', '::1']
            </span>    <span>]
            </span><span>}</span>

            Ensuite, exécutez cette commande de console afin d'effectuer la compression.

            yii migrate<span>/create create_user_table</span>

            Et enfin, modifiez votre fichier de configuration d'application Web pour utiliser les actifs compressés.

            <span><span><?php
            </span></span><span>
            </span><span>    <span>use yii<span>\db\Schema</span>;
            </span></span><span>
            </span><span>    <span>class m140924_153425_create_user_table extends <span>\yii\db\Migration</span>
            </span></span><span>    <span>{
            </span></span><span>        <span>public function up()
            </span></span><span>        <span>{
            </span></span><span>
            </span><span>        <span>}
            </span></span><span>
            </span><span>        <span>public function down()
            </span></span><span>        <span>{
            </span></span><span>            <span>echo "m140924_153425_create_user_table cannot be reverted.\n";
            </span></span><span>
            </span><span>            <span>return false;
            </span></span><span>        <span>}
            </span></span><span><span>}</span></span>

            Remarque: Vous devrez télécharger et installer ces outils externes manuellement.

            Conclusion

            Comme tout bon cadre, YII vous aide à créer rapidement des applications Web modernes et à vous assurer qu'ils fonctionnent bien. Il vous pousse à créer des sites sécurisés et testables en faisant une grande partie de la durée de travail pour vous. Vous pouvez facilement utiliser la plupart de ses fonctionnalités exactement telles qu'elles sont fournies, ou vous pouvez modifier chacune pour répondre à vos besoins. Je vous encourage vraiment à le vérifier pour votre prochain projet Web!

            Avez-vous essayé yii 2? Veux-tu? Faites-nous savoir!

            Questions fréquemment posées (FAQ) sur YII 2 Framework

            Pourquoi le cadre YII 2 est-il considéré comme très extensible?

            Le cadre YII 2 est considéré comme très extensible car il permet aux développeurs de personnaliser presque chaque élément du code du noyau. Cela signifie que si un développeur doit ajuster la fa?on dont le cadre gère certaines taches, il peut le faire sans avoir à modifier directement le code de base. Il s'agit d'un avantage significatif car il permet un degré élevé de flexibilité et d'adaptabilité, ce qui facilite l'adaptation du cadre pour répondre aux exigences spécifiques du projet.

            Comment le cadre YII 2 assure-t-il des performances élevées?

            Le cadre YII 2 assure des performances élevées grace à sa technique de chargement paresseuse efficace. Cela signifie qu'il ne charge que les composants nécessaires à un processus particulier, réduisant ainsi la charge sur le serveur et améliorant les performances globales de l'application. De plus, YII 2 prend également en charge la mise en cache des données, ce qui améliore encore ses performances.

            Qu'est-ce qui fait de Yii 2 Framework un choix sécurisé pour le développement Web?

            YII 2 Le cadre a des fonctionnalités de sécurité robustes intégrées dans son c?ur . Il fournit des outils intégrés pour la validation des entrées, le filtrage des sorties, la prévention de l'injection SQL et la prévention des scripts croisés (XSS). Ces fonctionnalités en font un choix sécurisé pour développer des applications Web qui doivent gérer les données sensibles.

            Comment le cadre YII 2 prend-il en charge un développement rapide?

            YII 2 Framework prend en charge un développement rapide grace à sa puissante génération de code outil, gii. GII permet aux développeurs de générer rapidement du code pour les modèles, les contr?leurs, les formulaires, les modules et les extensions. Cela réduit considérablement le temps nécessaire pour rédiger du code de passe-partout, permettant aux développeurs de se concentrer davantage sur la logique métier.

            Puis-je utiliser du code tiers avec le framework YII 2?

            Oui, Yii 2 Framework est con?u pour fonctionner de manière transparente avec du code tiers. Il utilise le Composer Dependency Manager, ce qui facilite l'intégration de bibliothèques et de packages tiers dans votre application YII 2.

            Comment le cadre YII 2 gère-t-il les erreurs et les exceptions?

            YII 2 Framework A un système complet de gestion des erreurs et de journalisation. Il peut gérer à la fois les erreurs PHP et les exceptions, et il fournit une variété de cibles de journalisation, y compris des fichiers, des e-mails et des consoles de navigateur. Cela facilite le débogage et la résolution des problèmes dans votre application.

            Le framework YII 2 est-il adapté au développement d'applications Web complexes?

            Oui, le cadre YII 2 est bien adapté pour développer des applications Web complexes. Il fournit une gamme d'outils et de fonctionnalités, tels que l'architecture MVC, les couches d'abstraction de la base de données et le support de mise en cache, qui facilite la création et le maintien d'applications complexes.

            Comment le cadre YII 2 prend-il en charge l'internationalisation?

            YII 2 Framework fournit un soutien étendu à l'internationalisation (I18N). Il comprend des fonctionnalités de formatage de date et d'heure, de formatage des nombres et de traduction de messages, ce qui facilite le développement d'applications pour un public mondial.

            Quel type de soutien communautaire est disponible pour le framework YII 2?

            Le cadre YII 2 a une grande communauté de développeurs. Il existe de nombreux forums, blogs et tutoriels disponibles en ligne où vous pouvez trouver de l'aide et des conseils. De plus, le site Web officiel de YII fournit une documentation complète et un guide de l'utilisateur.

            Comment le cadre YII 2 se compare-t-il à d'autres cadres PHP?

            YII 2 Framework ressort des autres cadres PHP en raison de son haut Performances, fonctionnalités de sécurité et extensibilité. Il soutient également le développement rapide, ce qui en fait un choix populaire pour les projets à petite et à grande échelle. Cependant, le meilleur cadre pour un projet dépend des exigences spécifiques et de l'expertise de l'équipe de développement.

            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!

            Déclaration de ce site Web
            Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefa?on, veuillez contacter admin@php.cn

            Outils d'IA chauds

            Undress AI Tool

            Undress AI Tool

            Images de déshabillage gratuites

            Undresser.AI Undress

            Undresser.AI Undress

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

            AI Clothes Remover

            AI Clothes Remover

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

            Clothoff.io

            Clothoff.io

            Dissolvant de vêtements AI

            Video Face Swap

            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?!

            Outils chauds

            Bloc-notes++7.3.1

            Bloc-notes++7.3.1

            éditeur de code facile à utiliser et gratuit

            SublimeText3 version chinoise

            SublimeText3 version chinoise

            Version chinoise, très simple à utiliser

            Envoyer Studio 13.0.1

            Envoyer Studio 13.0.1

            Puissant environnement de développement intégré PHP

            Dreamweaver CS6

            Dreamweaver CS6

            Outils de développement Web visuel

            SublimeText3 version Mac

            SublimeText3 version Mac

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

            Quelles sont les meilleures pratiques pour verser une API basée sur PHP? Quelles sont les meilleures pratiques pour verser une API basée sur PHP? Jun 14, 2025 am 12:27 AM

            Toversionaphp basé sur la performance, utilisation de la Version basée sur la croissance et la SEAFROURSE, Séparable CodééToAvoid Conclict, dépréciant les versions avec la Communication et la vision de la ConsiderCustomEnlywhencesseary.

            Comment mettre en ?uvre l'authentification et l'autorisation dans PHP? Comment mettre en ?uvre l'authentification et l'autorisation dans PHP? Jun 20, 2025 am 01:03 AM

            ToseCurelyHandleAuthentication andAuthorizationInPhp, suivitheSesteps: 1.AlwayShashPasswordSwithPassword_Hash () etverifyusingPassword_verify (), usePreparedStatementStopReventsQLendiject, andstoreSerDatain $ _SessionAfterLogin.2

            Quelles sont les différences entre les paradigmes de programmation procéduraux et orientés objet en PHP? Quelles sont les différences entre les paradigmes de programmation procéduraux et orientés objet en PHP? Jun 14, 2025 am 12:25 AM

            ProcéduralandObject-OriendEdProgramming (OOP) inphpdiffersignifiancely instructure, réutilisabilité et datahandling.1.ProceduralProgrammingususFonctionnets organisé sécrégence, approprié modéliste.2.

            Quelles sont les références faibles (faiblemap) en PHP, et quand pourraient-ils être utiles? Quelles sont les références faibles (faiblemap) en PHP, et quand pourraient-ils être utiles? Jun 14, 2025 am 12:25 AM

            PhpDoOesNothAveAbilt-InweakMapButoffersWeakreferenceForsiMarFonctionality.1.WeakReferenceallowsholdingreferences withoutpreventinggarbageCollection.2.itisationfulforcaching, les événements, et lametadatawithoutaffectingobjectlifecycles.3.

            Comment pouvez-vous gérer les téléchargements de fichiers en toute sécurité dans PHP? Comment pouvez-vous gérer les téléchargements de fichiers en toute sécurité dans PHP? Jun 19, 2025 am 01:05 AM

            Pour gérer en toute sécurité les téléchargements de fichiers dans PHP, le noyau consiste à vérifier les types de fichiers, à renommer les fichiers et à restreindre les autorisations. 1. Utilisez finfo_file () pour vérifier le type de mime réel, et seuls des types spécifiques tels que l'image / jpeg sont autorisés; 2. Utilisez Uniqid () pour générer des noms de fichiers aléatoires et les stocker dans le répertoire racine non Web; 3. Limiter la taille du fichier via les formulaires PHP.ini et HTML et définir les autorisations de répertoire sur 0755; 4. Utilisez Clamav pour scanner les logiciels malveillants pour améliorer la sécurité. Ces étapes empêchent efficacement les vulnérabilités de sécurité et garantissent que le processus de téléchargement de fichiers est s?r et fiable.

            Quelles sont les différences entre == (comparaison lache) et === (comparaison stricte) en PHP? Quelles sont les différences entre == (comparaison lache) et === (comparaison stricte) en PHP? Jun 19, 2025 am 01:07 AM

            En PHP, la principale différence entre == et == est la rigueur de la vérification des types. == La conversion de type sera effectuée avant la comparaison, par exemple, 5 == "5" Renvoie True, et === Demande que la valeur et le type soient les mêmes avant que True sera renvoyé, par exemple, 5 === "5" Renvoie False. Dans les scénarios d'utilisation, === est plus sécurisé et doit être utilisé en premier, et == n'est utilisé que lorsque la conversion de type est requise.

            Comment pouvez-vous interagir avec les bases de données NoSQL (par exemple, MongoDB, redis) de PHP? Comment pouvez-vous interagir avec les bases de données NoSQL (par exemple, MongoDB, redis) de PHP? Jun 19, 2025 am 01:07 AM

            Oui, PHP peut interagir avec les bases de données NoSQL comme MongoDB et Redis à travers des extensions ou des bibliothèques spécifiques. Tout d'abord, utilisez le pilote MongoDBPHP (installé via PECL ou Composer) pour créer des instances clients et faire fonctionner des bases de données et des collections, en prenant en charge l'insertion, la requête, l'agrégation et d'autres opérations; Deuxièmement, utilisez la bibliothèque Predis ou l'extension PHPREDIS pour vous connecter à Redis, effectuer des paramètres et des acquisitions de valeur clé, et recommander PHPredis pour des scénarios à haute performance, tandis que Predis est pratique pour un déploiement rapide; Les deux conviennent aux environnements de production et sont bien documentés.

            Comment effectuer des opérations arithmétiques en php (, -, *, /,%)? Comment effectuer des opérations arithmétiques en php (, -, *, /,%)? Jun 19, 2025 pm 05:13 PM

            Les méthodes d'utilisation des opérations mathématiques de base en PHP sont les suivantes: 1. Les signes d'addition prennent en charge les entiers et les nombres à virgule flottante, et peuvent également être utilisés pour les variables. Les numéros de cha?ne seront automatiquement convertis mais non recommandés en dépendances; 2. Les signes de soustraction utilisent - les signes, les variables sont les mêmes et la conversion de type est également applicable; 3. Les panneaux de multiplication utilisent * les panneaux, qui conviennent aux nombres et aux cha?nes similaires; 4. La division utilise / signes, qui doit éviter de diviser par zéro, et noter que le résultat peut être des nombres à virgule flottante; 5. Prendre les signes du module peut être utilisé pour juger des nombres impairs et uniformes, et lors du traitement des nombres négatifs, les signes restants sont cohérents avec le dividende. La clé pour utiliser correctement ces opérateurs est de s'assurer que les types de données sont clairs et que la situation limite est bien gérée.

            See all articles