Table des matières
Les plats clés
un tout petit peu d'histoire
Pour commencer
un aperçu de l'application YII de base
Qu'est-ce qui a changé?
contrôleurs
modèles
vues
Mise à niveau de YII 1.1
Conclusion
Des questions fréquemment posées sur YII 2.0
Quelles sont les nouvelles fonctionnalités de YII 2.0 par rapport à ses versions précédentes?
Comment YII 2.0 gère-t-il l'internationalisation (I18N)?
Qu'est-ce que le débogueur YII 2.0 et comment cela fonctionne-t-il?
Comment puis-je étendre YII 2.0 avec des extensions tierces?
Comment YII 2.0 gére-t-il les migrations de la base de données?
Comment YII 2.0 prend en charge le développement d'API Restful?
Comment YII 2.0 Gire-t-il la validation du formulaire?
Comment YII 2.0 gère-t-il l'authentification de l'utilisateur?
Comment YII 2.0 gère-t-il la gestion des erreurs et la journalisation?
Comment puis-je tester mes applications YII 2.0?
Maison développement back-end tutoriel php À quoi s'attendre de yii 2.0

À quoi s'attendre de yii 2.0

Feb 19, 2025 pm 01:02 PM

À quoi s'attendre de yii 2.0

yii 2.0 a été publié en version bêta en avril dernier et l'objectif d'une première version stable a été fixé pour le milieu de 2014. . Les progrès vers le jalon 2.0RC étaient à 99%. Je suppose que l'équipe est proche, mais nous devrons probablement attendre un peu plus longtemps. Pendant que nous attendons tous, jetons un coup d'œil à ce à quoi nous pouvons nous attendre en regardant un exemple déjà disponible.

Les plats clés

  • yii 2.0 introduit des améliorations et des changements significatifs, y compris l'utilisation d'espaces de noms, de traits et d'intégration des compositeurs, améliorant ses capacités de cadre PHP modernes.
  • Le cadre est passé du framework CSS Blueprint vers Twitter Bootstrap, qui non seulement modifie l'esthétique mais fournit également des composants d'interface utilisateur étendus pour le développement rapide des applications.
  • La gestion des erreurs dans YII 2.0 a été révisée pour convertir toutes les erreurs en exceptions, en fournissant une sortie plus informative et en améliorant les processus de débogage.
  • GII, l'outil de génération de code dans YII, reste intégral dans YII 2.0, soutenant désormais une meilleure génération de code pour les opérations et l'internationalisation de CRUD.
  • yii 2.0 nécessite PHP 5.4 ou plus et utilise des fonctionnalités de PHP avancées, ce qui peut affecter la compatibilité avec les environnements de serveur plus anciens, mais offre finalement un cadre plus robuste et sécurisé.

un tout petit peu d'histoire

La première version de YII est devenue populaire assez rapidement après sa sortie en 2008. C'est le fondateur, Qiang Xue, a précédemment travaillé sur le cadre Prado et a utilisé l'expérience et les commentaires de cela pour construire Yii.

yii utilise de nombreuses idées d'autres frameworks, langues et bibliothèques: Prado, Ruby, JQuery, Symfony et Joomla sont tous reconnus comme des sources d'inspiration.

Les premiers engagements pour YII 2.0 remontent à 2011, mais le développement a repris l'année dernière. L'équipe a fait une réécriture dans le but de devenir le cadre PHP de la nouvelle génération de pointe. Il adopte les dernières technologies et fonctionnalités, telles que le compositeur, le PSR, les espaces de noms, les traits, etc.

quelque chose qui mérite d'être mentionné est que, selon la page de téléchargement, la prise en charge de la version 1.1 se terminera le 31 décembre 2015, nous avons donc du temps pour commencer à penser à faire la transition.

exigences

L'utilisation des espaces de noms et des traits a augmenté les exigences de PHP 5.4. De plus, vous aurez besoin des extensions MB_String, PDO et INTL lorsque vous commencez à vous développer. Cela ne devrait pas être un problème si vous exécutez votre propre serveur, mais peut-être si vous êtes sur un environnement partagé. Bien sûr, avec le temps, cette question disparaîtra.

Installation

yii est désormais installable à partir du compositeur. Nous allons bientôt passer par cette méthode d'installation.

Actuellement, deux exemples d'applications sont disponibles. Il existe un exemple de base contenant quelques pages, une page de contact et une page de connexion. L'exemple avancé ajoute un front et un backend séparé, l'interaction de la base de données, l'inscription et la récupération de mot de passe.

Pour commencer

Je vais commencer par l'exemple de base. Si vous avez déjà regardé Yii, vous reconnaîtrez le même Basic webApp que Yii 1.1 est venu avec. Installez l'exemple de base avec Composer en utilisant la commande suivante:

composer.phar create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic
Copier après la connexion
Copier après la connexion
Copier après la connexion

Vous pouvez ensuite vérifier si votre serveur répond aux exigences en ouvrant http: //localhost/yii2-app-basic/requirements.php. L'application réelle s'exécutera ensuite à partir de http: // localhost / yii2-app-basic / web /.

C'est la première chose importante à remarquer: l'idée est que vous définissez la racine du document de votre application sur le / path / vers / application / web, un peu comme avec Symfony. La disposition du répertoire a un peu changé par rapport à la version 1.1. Si vous regardez attentivement, le changement est logique et améliorera la sécurité de votre application.

Auparavant, tous les composants d'application (modèles, vues, contrôleurs, framework et bibliothèques de fournisseurs) vivraient sous la racine du document dans le dossier protégé. De cette façon, la sécurité dépendait des fichiers .htaccess à respecter, ce qui signifiait que votre application était 100% peu sûre par défaut sur Nginx. Déplacer tous les composants d'application de la racine du document empêche le serveur Web d'envoyer vos composants d'application à un utilisateur.

Vous pourriez vous retrouver à chercher les sources de cadre réelles. Le cadre est un composant qui a été installé à l'aide du compositeur, il résidera donc dans le répertoire Vendoryiisoftyii. Ici, vous en trouverez beaucoup plus, mais pour l'instant, nous allons simplement en laisser ça.

Pour l'instant, modifions la configuration du serveur Web local et définissons la racine du document sur / path / vers / application / web. J'ai ajouté un virtualhost http: //yii2-app-basic.localhost/, mais faites comme vous le jugez bon pour votre propre situation. La configuration par défaut est définie pour masquer le fichier de script dans l'URL. Si vous utilisez Apache, vous devrez ajouter un fichier .htaccess au répertoire Web pour demander à Apache de réécrire, il n'est pas là par défaut.

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
Copier après la connexion
Copier après la connexion
Copier après la connexion

un aperçu de l'application YII de base

Maintenant que nous avons l'application de base en cours d'exécution, certains félicitations sont en ordre…

À quoi s'attendre de yii 2.0

merci! Pas de science des fusées jusqu'à présent.

Vous commencerez par la page Démarrer, une page statique sur une page de contact et une page de connexion. La page de contact et le formulaire de connexion ont les mêmes fonctionnalités disponibles qu'auparavant; CAPTCHA CODE, validation du formulaire et deux utilisateurs disponibles pour la connexion. La connexion fait de même qu'auparavant; près de rien. Pourtant, c'est un bon début.

La conception de l'application de base a considérablement changé. Auparavant, vous obtenez une application construite sur le framework CSS Blueprint alors que nous commençons maintenant par Twitter Bootstrap. Amélioration? Il est probablement comparé à Blueprint, mais là encore, Bootstrap est bien plus que Blueprint n'a jamais essayé d'être.
Bootstrap vous donnera toutes sortes de composants d'application et accélérera la création d'une application. Certains pourraient dire en revanche que tous les sites se ressemblent avec Bootstrap (les thèmes ne le réparent que partiellement) et cela rendra également votre site plus grande taille. Quoi qu'il en soit, l'intégration avec YII 2.0 se fait avec l'extension YII2-Bootstrap. Cela facilite l'intégration des composants bootstrap dans vos vues.

Une autre chose que vous remarquerez est la barre de débogage en bas. Il est installé et activé par défaut, tout comme dans Symfony. Il permet un accès rapide à des tas d'informations sur votre configuration, vos demandes et votre journalisation des applications. Il conservera également un historique de demandes avec des informations de débogage.

À quoi s'attendre de yii 2.0

yii gère les erreurs différentes de PHP normalement. YII convertit toutes les erreurs (mortelles et non mortelles) en exceptions. Ceux-ci sont gérés en rendant une sortie perspicace vous pointant vers le point où vous avez gâché ou votre code a généré un avis. Même les erreurs d'analyse, pour lesquelles YII 1.1 se replierait aux erreurs de base PHP, obtiendrait un aperçu bien rendu de votre code. C'est quelque chose que la plupart d'entre nous apprécieront.

À quoi s'attendre de yii 2.0

gii est également à nouveau présent et activé par défaut.

À quoi s'attendre de yii 2.0

gii vous aidera en générant du code pour que vous puissiez commencer, un autre excellent outil pour accélérer votre développement. Il générera des modèles et des contrôleurs pour vous. Le générateur CRUD va aller plus loin et générera un ensemble MVC complet pour toutes les actions. GII générera également du code mieux adapté à l'internationalisation (i18n) en insérant immédiatement la fonction yii :: t () où vous en aurez besoin.

L'application de base est désormais également livrée avec une application de ligne de commande simple sur laquelle vous pouvez construire. YII 1.1 a déjà soutenu cela, mais vous devez obtenir un exemple du wiki.

C'est ce que vous trouverez dans l'application de base. Il existe également un exemple de l'application Advanced disponible. Il a une structure quelque peu différente mais ajoute encore plus de fonctionnalités à votre application hors de la boîte:

  • Autorisation des utilisateurs, authentification et restauration du mot de passe.
  • Une application divisée en avant et backend.

Poursuivant le regard sur la version de base, jetons de plus près et plongeons dans le code…

Qu'est-ce qui a changé?

Beaucoup de choses ont changé. Certains changements pourraient vous confondre au début, mais je trouve que la plupart des changements ont du sens et sont faciles à accepter. Voici quelques-uns des changements que j'ai trouvés intéressants, amusants ou déroutants.

l'exigence de PHP 5.4 a rendu certaines modifications possibles; Les balises courtes du tableau sont disponibles. Il est également sûr d'utiliser les balises courtes d'écho dans les vues car cela ne dépend plus des paramètres de configuration.

composer.phar create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic
Copier après la connexion
Copier après la connexion
Copier après la connexion

un petit changement, mais que vous rencontrerez rapidement; Avant, vous utiliseriez yii :: app () pour accéder à l'instance d'application et à ses composants. Dans YII 2.0, cela est passé d'une fonction statique à une variable statique yii :: $ app.

La fonction traduisale yii :: t () est toujours avec nous. Il demande à YII d'utiliser le composant i18n pour traduire le texte fourni dans la langue actuelle utilisée. Vous pouvez également lui demander de remplacer les variables.

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
Copier après la connexion
Copier après la connexion
Copier après la connexion

Le formatage et le style de l'espace réservé ont été sérieusement retravaillés, ce qui permet de formater plus d'options. Quelques exemples:

<span><span><?php
</span></span><span><span>$elements = array(1,2,3,4); //Yii 1.1
</span></span><span><span>$elements = [1,2,3,4]; //Yii 2.0
</span></span><span><span>?></span>
</span><span><span><?php echo $someVar; ?></span> //Yii 1.1
</span><span><span><?= $someVar ?></span> //always safe to use in Yii 2.0</span>
Copier après la connexion
Copier après la connexion

En raison de ce formatage d'espace réservé, le DateTimeFormatter a disparu:

<span><span><?php
</span></span><span><span>echo `Yii<span>::</span>t('app', 'Hello, {username}!', [
</span></span><span>  <span>'username' => $username,
</span></span><span><span>]);
</span></span><span><span>?></span></span>
Copier après la connexion

Cette fonctionnalité est fournie par la bibliothèque des soins intensifs. La documentation YII appelle la documentation originale pour ceci: «assez cryptique». Je vous mets au défi de le lire et d'essayer de le comprendre… Espérons que la documentation YII comprend une version plus lisible dans le temps.

contrôleurs

Avant, AccessControl () serait une fonction de votre contrôleur si vous vouliez utiliser la fonctionnalité de contrôle d'accès YII. Avec YII 2.0, le contrôle d'accès fait partie du comportement des contrôleurs ():

<span><span><?php
</span></span><span><span>echo <span>\Yii</span>::t('app', '{n, number} is spelled as {n, spellout}', ['n' => 81]);
</span></span><span><span>echo <span>\Yii</span>::t('app', 'You are {n, ordinal} in line, please hold.', ['n' => 3]); //Will echo "You are 3rd in line, please wait.".
</span></span><span><span>echo <span>\Yii</span>::t('app', 'There {n, plural, =0{are no cats} =1{is one cat} other{are # cats}}!', array(
</span></span><span>    <span>'n' => 14,
</span></span><span><span>));
</span></span><span><span>?></span></span>
Copier après la connexion

Ceci est presque identique à la façon dont il était dans yii 1.1.

J'ai remarqué que l'exemple de code (pas le framework lui-même!) Il manque de nombreux docblocks et a beaucoup de commentaires @InheritDoc. Ce n'est pas ce que vous attendez d'un exemple, mais je suppose que cela sera corrigé dans le temps.

modèles

Le modèle de base (auparavant CModel) n'a pas beaucoup changé. Les scénarios vous permettent désormais de modifier l'application des règles de validation. Vous pouvez modifier ce qui doit être validé en fonction de votre scénario actuel (c'est-à-dire un modèle avec différentes règles lorsqu'il est utilisé à partir d'un front ou d'un backend).

L'Aciverecord dérivé a cependant subi de sérieux changements. La syntaxe de la recherche avec ActiveRecord est devenue plus comme une rédaction de requêtes parce que CDBcriteria a disparu. Il a été remplacé par une facilité de récupération des informations:

<span><span><?php
</span></span><span><span>//Previously in Yii 1.1
</span></span><span><span>Yii<span>::</span>app()->dateFormatter->formatDateTime(time(), 'medium', 'medium');
</span></span><span>
</span><span><span>//In Yii 2.0
</span></span><span><span>echo <span>\Yii</span>::t('app', 'The date is {0, date, short}', time());    //uses the pre-defined 'short' notation (i18n save)
</span></span><span><span>echo <span>\Yii</span>::t('app', 'The date is {0, date, YYYY-MM-dd}', time()); //or define your own notation
</span></span><span><span>?></span></span>
Copier après la connexion

La définition des relations a également changé de façon spectaculaire. Prenons par exemple un site avec des blogueurs qui publient des articles sur les utilisateurs commentent. Les définitions de relations pour le tableau des auteurs sont décrites ci-dessous. Je vais commencer par son apparence dans yii 1.1:

composer.phar create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic
Copier après la connexion
Copier après la connexion
Copier après la connexion

Comme vous pouvez le voir, vous définissez toutes les relations d'un enregistrement actif dans un grand tableau. Dans YII 2.0, vous devrez définir des méthodes Getter qui renvoient un objet ActiveQuery pour toutes ces relations. Vous devez utiliser le mot-clé «à travers» dans une relation pour définir une relation entre une table intermédiaire.

Vous avez maintenant deux options pour définir cela; Normalement, vous utiliseriez la méthode via () dans une fonction de relation. Vous pouvez également définir la relation à l'aide de la méthode viable () si vous n'avez besoin que des données dans le tableau après la table de pivot. Même exemple que ci-dessus mais maintenant pour yii 2.0:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
Copier après la connexion
Copier après la connexion
Copier après la connexion

C'est un exemple assez simple. La définition des relations via les fonctions Getter qui renvoient les objets ActiveQueery en permet beaucoup plus. Vous pouvez, par exemple, ajouter une fonction spécifique qui fait une requête pour les publications qui obtiennent> 50 commentaires en ajoutant un appel WHERE () dans laquier active retourné.

Un ajout intéressant est la possibilité de définir les relations Cross SGBD. Vous pouvez définir des relations entre par exemple MySQL et MongoDB ou Redis et les utiliser dans votre application comme un seul objet.

vues

La principale chose à noter dans les vues est que $ cela ne fait plus référence à l'instance du contrôleur. Dans une vue, $ il s'agit d'une instance de l'objet YiiWebView. Le contrôleur est accessible via $ ce-> contexte.

comme je l'ai déjà dit; PHP 5.4 rend la balise d'écho courte constamment disponible. Cela rend les vues qui consistent en php mixte et en HTML plus lisibles;

<span><span><?php
</span></span><span><span>$elements = array(1,2,3,4); //Yii 1.1
</span></span><span><span>$elements = [1,2,3,4]; //Yii 2.0
</span></span><span><span>?></span>
</span><span><span><?php echo $someVar; ?></span> //Yii 1.1
</span><span><span><?= $someVar ?></span> //always safe to use in Yii 2.0</span>
Copier après la connexion
Copier après la connexion

Les fonctions render () et renderPartial () ont également changé. Avant, il faisait écho à la sortie rendue automatiquement et vous devez ajouter un paramètre supplémentaire pour obtenir la sortie rendue en tant que chaîne. Yii 2.0 renvoie toujours une chaîne sur render () - comme les appels le rendant plus cohérent avec la façon dont les widgets se comportent.

Mise à niveau de YII 1.1

devriez-vous envisager de mettre à niveau votre application YII 1.1 à YII 2.0 dans le temps?

Bruno Škvorc a récemment écrit sur le code hérité ici sur SitePoint. Il soutient qu'une réécriture qui peut être effectuée en 2 mois devrait être envisagée - en particulier si le logiciel que vous utilisez est critique. Je suis d'accord avec lui et je vous suggère de le considérer si vous vous sentez sérieusement à propos de votre application et que vous souhaitez le maintenir au-delà de la fin de la vie de YII 1.1. Mais comme toujours; Cela dépend de votre situation.

Il existe une page spéciale dédiée à la mise à niveau de YII sur le site Web de YII. Le plus gros problème, pour l'instant, est vos extensions. Si vous comptez sur de nombreuses extensions, vous aurez du mal, car il faudra un certain temps pour que la communauté reprenne (re) la rédaction des extensions de YII 2.0. Si vous êtes un vrai pro, vous pourriez bien sûr jeter un coup d'œil sérieusement aux extensions que vous utilisez et envisager (re) les écrire.

Le manuel de migration a une section sur l'exécution de YII 1.1 et YII 2.0 dans une application. Pour les grands projets, c'est un bon moyen de créer un chemin de migration sûr. Migrez votre code générique vers YII 2.0 et prenez votre temps sur les pièces plus complexes ou remplies d'extension.

Conclusion

passer en revue le guide définitif de YII 2.0 me rend de plus en plus enthousiaste pour commencer avec yii 2.0. Je devais déjà m'empêcher de l'utiliser dans un nouveau projet parce que je ne pouvais pas risquer de problèmes avec le code de pré-production.

La qualité de la documentation pour YII 2.0 s'est améliorée par rapport à YII 1.1. J'ai eu du mal à comprendre des choses quand j'ai commencé avec yii 1.1 il y a quelques années et je pense que la documentation est plus étendue qu'auparavant.

Avez-vous déjà regardé Yii 2.0 ou peut-être même construit quelque chose avec? Veuillez nous dire ce que vous avez rencontré. J'aimerais connaître vos expériences!

Des questions fréquemment posées sur YII 2.0

Quelles sont les nouvelles fonctionnalités de YII 2.0 par rapport à ses versions précédentes?

YII 2.0 est livrée avec une multitude de nouvelles fonctionnalités et améliorations par rapport à ses prédécesseurs. Il prend désormais en charge l'utilisation d'espaces de noms, ce qui facilite l'organisation de code. Il introduit également un nouveau système de routage plus flexible et puissant. Les classes ActiveRecord ont été repensées pour prendre en charge davantage de types de bases de données, y compris les bases de données NoSQL. Le cadre comprend également un nouveau support de développement d'API RESTful, ce qui facilite la construction d'API. De plus, YII 2.0 a amélioré les fonctionnalités de sécurité, y compris la protection contre la contrefaçon de demande CSRF (demande inter-site).

Comment YII 2.0 gère-t-il l'internationalisation (I18N)?

YII 2.0 a un robuste Soutien de l'internationalisation (I18N). Il vous permet de stocker plusieurs traductions du même message dans différentes langues. Vous pouvez également formater les dates, les nombres et les devises en fonction du lieu. YII 2.0 prend également en charge les formulaires pluriels et la sélection de messages basés sur le contexte.

Qu'est-ce que le débogueur YII 2.0 et comment cela fonctionne-t-il?

Le débogueur YII 2.0 est un outil puissant qui vous aide à déboguer vos applications. Il recueille et affiche des informations sur chaque demande faite à votre application, y compris les requêtes SQL exécutées, les données de demande et de réponse et les données de synchronisation des performances. Vous pouvez accéder à ces informations via un panneau au bas des pages de votre application.

Comment puis-je étendre YII 2.0 avec des extensions tierces?

YII 2.0 prend en charge l'utilisation d'extensions tiers par tiers , qui peut être installé à l'aide du compositeur Package Manager. Une fois installé, vous pouvez utiliser ces extensions, tout comme les fonctionnalités intégrées de YII. La communauté YII a développé un large éventail d'extensions qui fournissent des fonctionnalités supplémentaires, telles que l'authentification des utilisateurs, la validation du formulaire et l'abstraction de la base de données.

Comment YII 2.0 gére-t-il les migrations de la base de données?

YII 2.0 fournit un puissant outil de migration de la base de données qui vous permet de contrôler les modifications de la base de données. Vous pouvez créer une nouvelle migration à l'aide de la commande YII MigRate / Create. Le script de migration contiendra des méthodes pour appliquer et retourner la migration. Vous pouvez ensuite appliquer la migration à l'aide de la commande yii migrate / up.

Comment YII 2.0 prend en charge le développement d'API Restful?

yii 2.0 fournit un ensemble d'outils pour vous aider à développer des API reposantes. Il comprend la prise en charge du routage, le traitement de la demande, le formatage de réponse et la gestion des erreurs. Vous pouvez également utiliser la classe ActiveController pour générer rapidement des actions Crud (créer, lire, mettre à jour, supprimer) pour votre API.

Comment YII 2.0 Gire-t-il la validation du formulaire?

YII 2.0 fournit un puissant Système de validation de la forme. Vous pouvez définir des règles de validation pour vos champs de formulaire dans la classe de modèle. Lorsqu'un formulaire est soumis, YII validera automatiquement les données d'entrée par rapport à ces règles et générera des messages d'erreur appropriés.

Comment YII 2.0 gère-t-il l'authentification de l'utilisateur?

YII 2.0 fournit un système d'authentification utilisateur flexible . Il prend en charge à la fois l'authentification traditionnelle du nom d'utilisateur / mot de passe et des méthodes plus modernes comme OAuth et OpenID. Vous pouvez également étendre le modèle utilisateur intégré pour ajouter vos propres méthodes d'authentification.

Comment YII 2.0 gère-t-il la gestion des erreurs et la journalisation?

YII 2.0 fournit un système de gestion des erreurs et de journalisation robuste. Il peut attraper et gérer à la fois les erreurs PHP et les exceptions. Les erreurs peuvent être enregistrées dans différents formats et envoyées à différentes destinations, telles que les fichiers, les e-mails et les navigateurs.

Comment puis-je tester mes applications YII 2.0?

yii 2.0 fournit un cadre de test Framework basé sur le phpunit et le sélénium. Il prend en charge les tests unitaires et les tests fonctionnels. Vous pouvez rédiger des cas de test pour tester vos modèles, vues et contrôleurs. Le framework de test fournit également des méthodes pour simuler les entrées des utilisateurs et vérifier la sortie.

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

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.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

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 grâce à 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)

Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Apr 05, 2025 am 12:04 AM

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Comment fonctionne le détournement de session et comment pouvez-vous l'atténuer en PHP? Comment fonctionne le détournement de session et comment pouvez-vous l'atténuer en PHP? Apr 06, 2025 am 12:02 AM

Le détournement de la session peut être réalisé via les étapes suivantes: 1. Obtenez l'ID de session, 2. Utilisez l'ID de session, 3. Gardez la session active. Les méthodes pour empêcher le détournement de la session en PHP incluent: 1. Utilisez la fonction Session_RegeReate_id () pour régénérer l'ID de session, 2. Stocker les données de session via la base de données, 3. Assurez-vous que toutes les données de session sont transmises via HTTPS.

Que sont les énumérations (enums) dans PHP 8.1? Que sont les énumérations (enums) dans PHP 8.1? Apr 03, 2025 am 12:05 AM

La fonction d'énumération dans PHP8.1 améliore la clarté et la sécurité du type du code en définissant les constantes nommées. 1) Les énumérations peuvent être des entiers, des chaînes ou des objets, améliorant la lisibilité du code et la sécurité des types. 2) L'énumération est basée sur la classe et prend en charge des fonctionnalités orientées objet telles que la traversée et la réflexion. 3) L'énumération peut être utilisée pour la comparaison et l'attribution pour assurer la sécurité du type. 4) L'énumération prend en charge l'ajout de méthodes pour implémenter une logique complexe. 5) La vérification stricte et la gestion des erreurs peuvent éviter les erreurs courantes. 6) L'énumération réduit la valeur magique et améliore la maintenabilité, mais prêtez attention à l'optimisation des performances.

Décrivez les principes solides et comment ils s'appliquent au développement de PHP. Décrivez les principes solides et comment ils s'appliquent au développement de PHP. Apr 03, 2025 am 12:04 AM

L'application du principe solide dans le développement de PHP comprend: 1. Principe de responsabilité unique (SRP): Chaque classe n'est responsable d'une seule fonction. 2. Principe ouvert et ferme (OCP): les changements sont réalisés par extension plutôt que par modification. 3. Principe de substitution de Lisch (LSP): les sous-classes peuvent remplacer les classes de base sans affecter la précision du programme. 4. Principe d'isolement d'interface (ISP): utilisez des interfaces à grain fin pour éviter les dépendances et les méthodes inutilisées. 5. Principe d'inversion de dépendance (DIP): les modules élevés et de bas niveau reposent sur l'abstraction et sont mis en œuvre par injection de dépendance.

Comment déboguer le mode CLI dans phpstorm? Comment déboguer le mode CLI dans phpstorm? Apr 01, 2025 pm 02:57 PM

Comment déboguer le mode CLI dans phpstorm? Lors du développement avec PHPStorm, nous devons parfois déboguer PHP en mode interface de ligne de commande (CLI) ...

Comment envoyer une demande post contenant des données JSON à l'aide de la bibliothèque Curl de PHP? Comment envoyer une demande post contenant des données JSON à l'aide de la bibliothèque Curl de PHP? Apr 01, 2025 pm 03:12 PM

Envoyant des données JSON à l'aide de la bibliothèque Curl de PHP dans le développement de PHP, il est souvent nécessaire d'interagir avec les API externes. L'une des façons courantes consiste à utiliser la bibliothèque Curl pour envoyer le post� ...

Expliquez la liaison statique tardive en PHP (statique: :). Expliquez la liaison statique tardive en PHP (statique: :). Apr 03, 2025 am 12:04 AM

Liaison statique (statique: :) ​​implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

See all articles