Table des matières
Les plats clés
Qu'est-ce que les tests d'acceptation?
Qu'est-ce que le sélénium?
Configuration de l'application
phpunit et sélénium
Fournisseurs de données
Travailler avec les éléments DOM
Soumission de formulaire valide
Soumission de formulaire non valide
en utilisant un autre navigateur
Le document est-il prêt?
Conclusion
Questions fréquemment posées (FAQ) sur l'utilisation du sélénium avec phpunit
Comment puis-je installer PHPUnit et Selenium WebDriver dans PHP?
Comment puis-je exécuter un test PHPUnit avec Selenium?
Comment utiliser les assertions en phpunit avec le sélénium?
Comment puis-je gérer les séances de navigateur en phpunit avec le sélénium?
Comment gérer les demandes AJAX en phpunit avec le sélénium?
Comment puis-je exécuter des tests phpunit avec du sélénium sur différents navigateurs?
Comment gérer les cadres et les iframes en phpunit avec le sélénium?
Comment puis-je prendre des captures d'écran avec du sélénium dans les tests de phpunit?
Comment gérer les cookies dans le phpunit avec le sélénium?
Comment puis-je exécuter des tests phpunit avec Le sélénium en parallèle?
Maison développement back-end tutoriel php Utilisation du sélénium avec phpunit

Utilisation du sélénium avec phpunit

Feb 17, 2025 am 08:31 AM

Utilisation du sélénium avec phpunit

Le test est un sujet très large, que ce soit des tests unitaires, des tests fonctionnels, des tests d'acceptation, etc. Dans cet article, nous allons voir comment vous pouvez effectuer des tests d'acceptation à l'aide de sélénium. J'utiliserai un exemple pratique pour illustrer un véritable cas d'utilisation. Je suppose que vous savez déjà comment effectuer des tests unitaires à l'aide de phpunit, ou que vous avez au moins la compréhension de ce dont il s'agit. Commençons.

Utilisation du sélénium avec phpunit

Les plats clés

  • Selenium est un outil pour automatiser les tests d'interface utilisateur, vous permettant de configurer des tests qui interagissent avec votre application Web comme le ferait un utilisateur. Il fonctionne en traduisant des tests en commandes et en les transmettant au serveur Selenium, qui interagit ensuite avec le navigateur Web à l'aide de son API native.
  • PHPUNIT, un cadre de test unitaire pour PHP, peut être utilisé conjointement avec le sélénium pour les tests d'acceptation. Il fournit deux classes à cet effet: phpunit_extensions_seleniumtestcase pour Selenium RC (maintenant déprécié) et phpunit_extensions_selenium2testcase pour Selenium webdriver.
  • Les fournisseurs de données en phpunit permettent l'alimentation de données spécifiques dans des tests sans itération. Cela peut être utilisé en conjonction avec le sélénium pour tester comment votre application Web réagit aux différentes entrées.
  • Les tests de sélénium peuvent être exécutés sur différents navigateurs, car Selenium utilise une approche de pilote où chaque fournisseur de navigateur fournit son propre pilote. Cela permet des tests complets de navigateur de votre application Web.

Qu'est-ce que les tests d'acceptation?

Les tests d'acceptation sont le processus de raconter des histoires d'utilisateurs à travers des tests, et j'adore cette citation pour le décrire:

Un test formel effectué pour déterminer si un système satisfait ou non ses critères d'acceptation et pour permettre au client de déterminer s'il accepte ou non le système.

Qu'est-ce que le sélénium?

Selenium est un outil pour automatiser les tests d'interface utilisateur. Il aide à tester votre application contre le navigateur. Le processus pourrait être décrit comme tel:

  • Accédez à la page http://myapp.dev/videos.
  • Affirmer que la page contient une liste de 20 vidéos.
  • Cliquez sur le numéro deux sur la pagination.
  • Affirmer que la page contient une liste de 20 vidéos.
  • quitte le navigateur.

Vous vous demandez peut-être: «Comment manipule-t-il la page Web en utilisant les tests décrits?»

La réponse est «cela dépend». Si vous utilisez Selenium RC (précédemment nommé Selenium 1), il injectera le code JavaScript généré automatique sur la page pour effectuer les actions souhaitées. Selenium RC est obsolète et n'est pris en charge qu'en mode de maintenance; vous devriez utiliser lediriver de sélénium.

Lorsque vous utilisez Selenium WebDriver (Selenium 2), les tests sont traduits en commandes et transmis au serveur Selenium (plus à ce sujet dans un instant), puis transmis au navigateur à l'aide de l'API native du navigateur Web.

Configuration de l'application

Parce que nous n'avons pas vraiment d'application à tester, je vais utiliser une page d'enregistrement des utilisateurs. L'utilisateur entrera ses informations personnelles et certaines informations de facturation. Si tout est bon, la page doit tout sortir est bonne!. Sinon, la page affichera le formulaire d'abonnement avec une liste des messages d'erreur de validation.

Utilisation du sélénium avec phpunit

Nous allons commencer à tester notre application à l'aide de phpunit avec l'extension de sélénium. Assurez-vous de les installer à l'aide du compositeur avant de démarrer.

<span>composer require --dev phpunit/phpunit
</span><span>composer require --dev phpunit/phpunit-selenium</span>
Copier après la connexion
Copier après la connexion
Copier après la connexion

Nous avons déjà dit que les commandes sont transmises à un serveur Selenium, qui les transmet ensuite au navigateur. Nous devons télécharger le serveur Selenium, qui n'est qu'un exécutable d'archives Java. Le serveur peut être exécuté à l'aide de Java -Jar Selenium-Server-Standalone- .JAR. Étant donné que nous l'utiliserons fréquemment, c'est une bonne idée de le déplacer vers un répertoire de bac et de faire un alias pour cela à l'intérieur de notre .bashrc ou .zshrc.

<span>alias sserve="java -jar /usr/local/bin/selenium-server-standalone-<version>.jar"</span>
Copier après la connexion
Copier après la connexion
Copier après la connexion

phpunit et sélénium

PHPUnit prend en charge Selenium RC et WebDriver, et il fournit deux classes à cette fin. Le phpunit_extensions_seleniumtestcase est utilisé pour la version RC, et le phpunit_extensions_selenium2testcase est utilisé pour la version WebDriver. Ainsi, votre test doit prolonger l'un d'eux pour commencer. N'oubliez pas que la version RC est obsolète, nous allons donc utiliser le webDriver un dans notre exemple ci-dessous.

<span>// tests/acceptance/UserSubscriptionTest.php
</span>
<span>class UserSubscriptionTest extends PHPUnit_Extensions_Selenium2TestCase
</span><span>{
</span>    <span>public function setUp()
</span>    <span>{
</span>        <span>$this->setHost('localhost');
</span>        <span>$this->setPort(4444);
</span>        <span>$this->setBrowserUrl('http://vaprobash.dev');
</span>        <span>$this->setBrowser('firefox');
</span>    <span>}
</span><span>}</span>
Copier après la connexion
Copier après la connexion
Copier après la connexion

La méthode de configuration est utilisée pour préparer l'environnement de test. Dans ce cas, nous l'utilisons pour indiquer à Phpunit où notre serveur Selenium s'exécute, quel navigateur nous utiliserons et l'URL de notre application. La méthode SETHOST est par défaut vers LocalHost et la méthode Setport par défaut est à 4444, afin qu'ils puissent être omis ici. Cependant, cela peut être utilisé si votre serveur de test se trouve dans une machine Windows qui prend en charge Internet Explorer pendant que vous exécutez vos tests à partir d'une autre machine différente, etc.

La méthode de démontage est appelée lorsque les tests sont effectués, et il est utilisé pour effacer l'étape. Nous l'utilisons pour fermer le navigateur et terminer la session en cours.

<span>public function tearDown()
</span><span>{
</span>    <span>$this->stop();
</span><span>}</span>
Copier après la connexion
Copier après la connexion
Copier après la connexion

Fournisseurs de données

Les fournisseurs de données PHPUNIT nous permettent de nourrir nos tests avec des données spécifiques sans avoir à les itérer dessus. Vous pouvez en savoir plus dans la documentation.

<span>// tests/acceptance/UserSubscriptionTest.php
</span>
<span>class UserSubscriptionTest extends PHPUnit_Extensions_Selenium2TestCase
</span><span>{
</span>    <span>public function validInputsProvider()
</span>    <span>{
</span>        <span>$inputs[] = [
</span>            <span>[
</span>                <span>'username'              => 'younesrafie',
</span>                <span>'password'              => 'mypassword',
</span>                <span>'password_confirmation' => 'mypassword',
</span>                <span>'email'                 => 'mymail@gmail.com',
</span>                <span>'cardHolderName'        => 'RAFIE Younes',
</span>                <span>'cardNumber'            => '378282246310005',
</span>                <span>'billingAddress'        => 'Narjiss B Fez Morocco',
</span>                <span>'cvc'                   => '850',
</span>                <span>'expirationMonth'       => '01',
</span>                <span>'expirationYear'        => '2016',
</span>            <span>]
</span>        <span>];
</span>
        <span>return $inputs;
</span>    <span>}
</span>    
    <span>public static function invalidInputsProvider()
</span>    <span>{
</span>        <span>$inputs[] = [
</span>            <span>[
</span>                <span>'username'              => '@younesrafie',
</span>                <span>'password'              => 'mypassword',
</span>                <span>'password_confirmation' => 'mypassword',
</span>                <span>'email'                 => 'mymail@gmail.com',
</span>                <span>'cardHolderName'        => 'RAFIE Younes',
</span>                <span>'cardNumber'            => '378282246310005',
</span>                <span>'billingAddress'        => 'Narjiss B Fez Morocco',
</span>                <span>'cvc'                   => '850',
</span>                <span>'expirationMonth'       => '01',
</span>                <span>'expirationYear'        => '2016',
</span>            <span>],
</span>            <span>"Username must only contain alpha numeric characters and dashes."
</span>        <span>];
</span>        <span>// ...
</span>        
        <span>return $inputs;
</span>    <span>}
</span><span>}</span>
Copier après la connexion
Copier après la connexion

L'invalidInputsprovider renvoie une liste des entrées valides à l'exception d'un champ, et nous passons le message d'erreur attendu après l'échec de la validation.

Utilisation du sélénium avec phpunit

Travailler avec les éléments DOM

Une tâche courante lorsque vous travaillez avec les pages Web est la sélection des éléments. L'extension sélénium de Phpunit offre une très belle API pour cela. Vous pouvez sélectionner des éléments par nom de classe, balise, nom, id, sélecteur CSS, xpath, etc. Valeur, mise à jour de l'élément CSS et un tas d'autres tâches courantes. Pour notre page, nous pouvons faire quelque chose comme ce qui suit.

<span>composer require --dev phpunit/phpunit
</span><span>composer require --dev phpunit/phpunit-selenium</span>
Copier après la connexion
Copier après la connexion
Copier après la connexion

Ce test sélectionnera l'entrée du nom d'utilisateur et définira une valeur, puis soumettra le formulaire d'abonnement. Nous pouvons ajouter une affirmation après cela pour voir si la réponse est comme prévu. Le corps de la page contiendra tout est bon! Si la validation passait.

<span>alias sserve="java -jar /usr/local/bin/selenium-server-standalone-<version>.jar"</span>
Copier après la connexion
Copier après la connexion
Copier après la connexion

Notre fournisseur de données contient le nom d'entrée et la valeur correspondante. Nous créerons une méthode distincte pour gérer le remplissage des entrées de formulaire et la soumission.

<span>// tests/acceptance/UserSubscriptionTest.php
</span>
<span>class UserSubscriptionTest extends PHPUnit_Extensions_Selenium2TestCase
</span><span>{
</span>    <span>public function setUp()
</span>    <span>{
</span>        <span>$this->setHost('localhost');
</span>        <span>$this->setPort(4444);
</span>        <span>$this->setBrowserUrl('http://vaprobash.dev');
</span>        <span>$this->setBrowser('firefox');
</span>    <span>}
</span><span>}</span>
Copier après la connexion
Copier après la connexion
Copier après la connexion

Soumission de formulaire valide

Pour pointer le navigateur vers une page spécifique, nous utilisons la méthode URL de la classe phpunit_extensions_selenium2testcase. L'URL est relative à celle fournie à la méthode SetBrowserurl. Ainsi, après avoir pointé le navigateur vers la page d'index, nous remplissons et soumettons le formulaire, puis testez le message de réussite attendu.

<span>public function tearDown()
</span><span>{
</span>    <span>$this->stop();
</span><span>}</span>
Copier après la connexion
Copier après la connexion
Copier après la connexion

En supposant que votre serveur Selenium est opérationnel, allez-y et exécutez vos tests avec PHPUnit Tests / Acceptance / UsersubScriptionTest.php. Cela créera une nouvelle session de navigateur et commencera à remplir le formulaire. Nous nous attendons à ce que tout passe avec une affirmation réussie.

Utilisation du sélénium avec phpunit

Certains tests échouent et la durée des tests est trop courte pour que nous observons ce qui a mal tourné. PHPUnit a la capacité de capturer des captures d'écran des tests d'échec en utilisant la méthode CurrentScreenshot qui renvoie une image blob que nous pouvons enregistrer.

<span>// tests/acceptance/UserSubscriptionTest.php
</span>
<span>class UserSubscriptionTest extends PHPUnit_Extensions_Selenium2TestCase
</span><span>{
</span>    <span>public function validInputsProvider()
</span>    <span>{
</span>        <span>$inputs[] = [
</span>            <span>[
</span>                <span>'username'              => 'younesrafie',
</span>                <span>'password'              => 'mypassword',
</span>                <span>'password_confirmation' => 'mypassword',
</span>                <span>'email'                 => 'mymail@gmail.com',
</span>                <span>'cardHolderName'        => 'RAFIE Younes',
</span>                <span>'cardNumber'            => '378282246310005',
</span>                <span>'billingAddress'        => 'Narjiss B Fez Morocco',
</span>                <span>'cvc'                   => '850',
</span>                <span>'expirationMonth'       => '01',
</span>                <span>'expirationYear'        => '2016',
</span>            <span>]
</span>        <span>];
</span>
        <span>return $inputs;
</span>    <span>}
</span>    
    <span>public static function invalidInputsProvider()
</span>    <span>{
</span>        <span>$inputs[] = [
</span>            <span>[
</span>                <span>'username'              => '@younesrafie',
</span>                <span>'password'              => 'mypassword',
</span>                <span>'password_confirmation' => 'mypassword',
</span>                <span>'email'                 => 'mymail@gmail.com',
</span>                <span>'cardHolderName'        => 'RAFIE Younes',
</span>                <span>'cardNumber'            => '378282246310005',
</span>                <span>'billingAddress'        => 'Narjiss B Fez Morocco',
</span>                <span>'cvc'                   => '850',
</span>                <span>'expirationMonth'       => '01',
</span>                <span>'expirationYear'        => '2016',
</span>            <span>],
</span>            <span>"Username must only contain alpha numeric characters and dashes."
</span>        <span>];
</span>        <span>// ...
</span>        
        <span>return $inputs;
</span>    <span>}
</span><span>}</span>
Copier après la connexion
Copier après la connexion

Soumission de formulaire non valide

La soumission de forme non valide est presque identique à la méthode précédente. Nous remplissons les entrées du formulaire et nous soumettons. Ensuite, nous vérifions que le message d'erreur de validation est comme prévu. Nous utiliserons l'invalidinputsprovider que j'ai mentionné plus tôt.

<span>class UserSubscriptionTest extends PHPUnit_Extensions_Selenium2TestCase
</span><span>{
</span>    <span>public function testFormSubmissionWithUsername()
</span>    <span>{
</span>        <span>$this->byName('username')->value('younesrafie');
</span>        <span>$this->byId('subscriptionForm')->submit();
</span>    <span>}
</span><span>}</span>
Copier après la connexion

La méthode BYCSSSeLector nous permet de récupérer un élément de la page à l'aide de sélecteurs CSS, dans ce cas le paragraphe d'erreur. Nous affirmons si le message d'erreur est comme prévu en utilisant le champ de message d'erreur à partir de la méthode du fournisseur de données.

Notre formulaire ne contient que des interactions de base comme la sélection des éléments, la définition de valeurs, la soumission du formulaire, etc. Cependant, nous pouvons également utiliser la méthode de clic sur un bouton ou un élément de lien pour vérifier que la page cible fonctionne comme prévu.

Utilisation du sélénium avec phpunit

en utilisant un autre navigateur

Nous avons utilisé le navigateur Firefox pour nos tests. Cependant, nous avons également la possibilité d'utiliser tout autre navigateur. Selenium utilise l'approche du pilote, où chaque fournisseur de navigateur travaille à fournir son propre pilote. Vous pouvez vérifier la liste des pilotes pris en charge dans la documentation.

Pour activer le navigateur Chrome, vous devez télécharger le chromedriver et spécifier le chemin d'option en tant que lancement du serveur Selenium.

<span>composer require --dev phpunit/phpunit
</span><span>composer require --dev phpunit/phpunit-selenium</span>
Copier après la connexion
Copier après la connexion
Copier après la connexion
<span>alias sserve="java -jar /usr/local/bin/selenium-server-standalone-<version>.jar"</span>
Copier après la connexion
Copier après la connexion
Copier après la connexion

Utilisation du sélénium avec phpunit

Le document est-il prêt?

Si le contenu de votre page est chargé via AJAX et que vous ne souhaitez pas déclencher les tests directement sur le chargement de la page, vous voudrez attendre que votre page soit chargée et que vos éléments sont présents.

<span>// tests/acceptance/UserSubscriptionTest.php
</span>
<span>class UserSubscriptionTest extends PHPUnit_Extensions_Selenium2TestCase
</span><span>{
</span>    <span>public function setUp()
</span>    <span>{
</span>        <span>$this->setHost('localhost');
</span>        <span>$this->setPort(4444);
</span>        <span>$this->setBrowserUrl('http://vaprobash.dev');
</span>        <span>$this->setBrowser('firefox');
</span>    <span>}
</span><span>}</span>
Copier après la connexion
Copier après la connexion
Copier après la connexion

La fonction de rappel attendra jusqu'à ce que nous renvoyons une valeur non nulle et sera délai après deux secondes avec un message d'erreur. La méthode de recherche continuera à rechercher l'élément, mais si vous souhaitez spécifier un intervalle de recherche, vous pouvez utiliser la méthode implicite.

<span>public function tearDown()
</span><span>{
</span>    <span>$this->stop();
</span><span>}</span>
Copier après la connexion
Copier après la connexion
Copier après la connexion

Conclusion

Cet article a été une brève introduction à l'utilisation du sélénium avec phpunit pour les tests d'acceptation. En général, vous pouvez utiliser le sélénium pour tout ce qui nécessite une automatisation du navigateur. Si vous avez des commentaires ou des questions, assurez-vous de les publier ci-dessous et je ferai de mon mieux pour y répondre.

Questions fréquemment posées (FAQ) sur l'utilisation du sélénium avec phpunit

Comment puis-je installer PHPUnit et Selenium WebDriver dans PHP?

Pour installer PHPUnit et Selenium WebDriver dans PHP, vous devez utiliser Composer, un outil de gestion de la dépendance pour PHP. Tout d'abord, installez le compositeur si vous ne l'avez pas déjà fait. Ensuite, exécutez la commande suivante dans votre terminal pour installer PHPUnit: Composer nécessite --Dev phpunit / phpunit ^ 9. Pour Selenium WebDriver, utilisez la commande: Composer nécessite --Dev php-webdriver / webdriver. Cela installera à la fois Phpunit et Selenium WebDriver dans votre projet PHP.

Comment puis-je exécuter un test PHPUnit avec Selenium?

Pour exécuter un test de phpunit avec le sélénium, vous devez écrire un cas de test qui utilise Selenium WebDriver. Dans votre cas de test, vous pouvez utiliser des commandes WebDriver pour interagir avec le navigateur. Une fois que votre cas de test est prêt, vous pouvez l'exécuter à l'aide de l'outil de ligne de commande PhpUnit. Accédez simplement à votre répertoire de projet dans le terminal et exécutez la commande: phpunit mytest.php, où «mytest.php» est le nom de votre fichier de test.

Comment utiliser les assertions en phpunit avec le sélénium?

Les affirmations sont utilisées dans le phpunit pour vérifier qu'une certaine condition est vraie. Ils sont essentiels pour déterminer si un test a réussi ou échoué. Dans un test PHPUNIT avec Selenium, vous pouvez utiliser des affirmations pour vérifier l'état des éléments Web. Par exemple, vous pouvez affirmer qu'un certain élément est présent, visible ou contient un texte spécifique. Pour ce faire, vous pouvez utiliser les méthodes d'affirmation fournies par PHPUnit, telles que les asserttequals, AssertTrue ou AssertContains.

Comment puis-je gérer les séances de navigateur en phpunit avec le sélénium?

PHPUnit avec Selenium se fait à l'aide des méthodes de session du webdriver. Lorsque vous créez une nouvelle instance du WebDriver, une nouvelle session de navigateur est démarrée. Vous pouvez interagir avec cette session en utilisant diverses méthodes, telles que Navigate (), Refresh () ou Close (). Pour mettre fin à la session, vous pouvez utiliser la méthode QUIT (), qui fermera toutes les fenêtres et terminera la session.

Comment gérer les demandes AJAX en phpunit avec le sélénium?

Gestion des demandes AJAX En phpunit avec sélénium, peut être délicat car vous devez attendre que l'appel Ajax se termine avant de pouvoir interagir avec les éléments mis à jour. Selenium WebDriver fournit la classe WebDriverWait à cet effet. Vous pouvez l'utiliser pour attendre qu'une certaine condition soit vraie avant de continuer. Par exemple, vous pouvez attendre qu'un élément soit visible ou cliquable.

Comment puis-je exécuter des tests phpunit avec du sélénium sur différents navigateurs?

Selenium WebDriver prend en charge plusieurs navigateurs, y compris Chrome, Firefox, Safari et Internet Explorer. Pour exécuter vos tests PHPUnit sur un navigateur différent, vous devez créer une nouvelle instance du webdriver pour ce navigateur. Par exemple, pour utiliser Firefox, vous créeriez une nouvelle instance Firefoxdriver. Ensuite, vous pouvez utiliser ce pilote pour exécuter vos tests.

Comment gérer les cadres et les iframes en phpunit avec le sélénium?

Les trames et les iframes peuvent être gérés dans phpunit avec sélénium en utilisant le commutateur ( ) Méthode du webdriver. Cette méthode vous permet de basculer le contexte à un cadre ou à un iframe différent. Une fois que vous avez terminé en interaction avec les éléments à l'intérieur du cadre, vous pouvez revenir au contenu principal à l'aide de la méthode Switchto () -> defaultContent ().

Comment puis-je prendre des captures d'écran avec du sélénium dans les tests de phpunit?

La prise de captures d'écran avec du sélénium dans les tests de phpunit peut être effectuée en utilisant la méthode TakesCreenshot () du webdriver. Cette méthode prend une capture d'écran de la fenêtre actuelle et la renvoie sous forme de chaîne au format PNG. Vous pouvez ensuite enregistrer cette chaîne dans un fichier pour créer la capture d'écran.

Comment gérer les cookies dans le phpunit avec le sélénium?

Les cookies peuvent être manipulés en phpunit avec du sélénium en utilisant la méthode manage () -> getcookies () du webdriver. Cette méthode renvoie tous les cookies en tant que tableau. Vous pouvez également utiliser le manage () -> addcookie (), manage () -> DeleteCookie () et Manage () -> DeleTeAlLCooKies () pour manipuler des cookies.

Comment puis-je exécuter des tests phpunit avec Le sélénium en parallèle?

Les tests de phpunit exécutés avec du sélénium en parallèle peuvent accélérer considérablement votre suite de tests. Cela peut être réalisé à l'aide d'une grille de sélénium, qui vous permet d'exécuter simultanément des tests sur plusieurs machines et navigateurs. Pour utiliser Selenium Grid, vous devez configurer un hub et des nœuds, puis configurer votre webdriver pour vous connecter au hub.

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 !

Article chaud

<🎜>: Grow A Garden - Guide de mutation complet
3 Il y a quelques semaines By DDD
<🎜>: Bubble Gum Simulator Infinity - Comment obtenir et utiliser les clés royales
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Système de fusion, expliqué
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Comment déverrouiller le grappin
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

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)

Sujets chauds

Tutoriel Java
1670
14
Tutoriel PHP
1274
29
Tutoriel C#
1256
24
Expliquez le hachage de mot de passe sécurisé dans PHP (par exemple, Password_Hash, Password_verify). Pourquoi ne pas utiliser MD5 ou SHA1? Expliquez le hachage de mot de passe sécurisé dans PHP (par exemple, Password_Hash, Password_verify). Pourquoi ne pas utiliser MD5 ou SHA1? Apr 17, 2025 am 12:06 AM

Dans PHP, Password_Hash et Password_verify Les fonctions doivent être utilisées pour implémenter le hachage de mot de passe sécurisé, et MD5 ou SHA1 ne doit pas être utilisé. 1) Password_hash génère un hachage contenant des valeurs de sel pour améliorer la sécurité. 2) Password_verify Vérifiez le mot de passe et assurez-vous la sécurité en comparant les valeurs de hachage. 3) MD5 et SHA1 sont vulnérables et manquent de valeurs de sel, et ne conviennent pas à la sécurité de mot de passe moderne.

PHP et Python: comparaison de deux langages de programmation populaires PHP et Python: comparaison de deux langages de programmation populaires Apr 14, 2025 am 12:13 AM

PHP et Python ont chacun leurs propres avantages et choisissent en fonction des exigences du projet. 1.Php convient au développement Web, en particulier pour le développement rapide et la maintenance des sites Web. 2. Python convient à la science des données, à l'apprentissage automatique et à l'intelligence artificielle, avec syntaxe concise et adaptée aux débutants.

PHP en action: Exemples et applications du monde réel PHP en action: Exemples et applications du monde réel Apr 14, 2025 am 12:19 AM

PHP est largement utilisé dans le commerce électronique, les systèmes de gestion de contenu et le développement d'API. 1) E-commerce: Utilisé pour la fonction de panier et le traitement des paiements. 2) Système de gestion du contenu: utilisé pour la génération de contenu dynamique et la gestion des utilisateurs. 3) Développement des API: Utilisé pour le développement de l'API RESTful et la sécurité de l'API. Grâce à l'optimisation des performances et aux meilleures pratiques, l'efficacité et la maintenabilité des applications PHP sont améliorées.

Comment fonctionne la résistance au type PHP, y compris les types scalaires, les types de retour, les types d'union et les types nullables? Comment fonctionne la résistance au type PHP, y compris les types scalaires, les types de retour, les types d'union et les types nullables? Apr 17, 2025 am 12:25 AM

Le type PHP invite à améliorer la qualité et la lisibilité du code. 1) Conseils de type scalaire: Depuis PHP7.0, les types de données de base sont autorisés à être spécifiés dans les paramètres de fonction, tels que INT, Float, etc. 2) Invite de type de retour: Assurez la cohérence du type de valeur de retour de fonction. 3) Invite de type d'union: Depuis PHP8.0, plusieurs types peuvent être spécifiés dans les paramètres de fonction ou les valeurs de retour. 4) Invite de type nullable: permet d'inclure des valeurs nulles et de gérer les fonctions qui peuvent renvoyer les valeurs nulles.

La pertinence durable de PHP: est-elle toujours vivante? La pertinence durable de PHP: est-elle toujours vivante? Apr 14, 2025 am 12:12 AM

PHP est toujours dynamique et occupe toujours une position importante dans le domaine de la programmation moderne. 1) La simplicité de PHP et le soutien communautaire puissant le rendent largement utilisé dans le développement Web; 2) sa flexibilité et sa stabilité le rendent exceptionnelle dans la gestion des formulaires Web, des opérations de base de données et du traitement de fichiers; 3) PHP évolue et optimise constamment, adapté aux débutants et aux développeurs expérimentés.

PHP et Python: différents paradigmes expliqués PHP et Python: différents paradigmes expliqués Apr 18, 2025 am 12:26 AM

PHP est principalement la programmation procédurale, mais prend également en charge la programmation orientée objet (POO); Python prend en charge une variété de paradigmes, y compris la POO, la programmation fonctionnelle et procédurale. PHP convient au développement Web, et Python convient à une variété d'applications telles que l'analyse des données et l'apprentissage automatique.

PHP et Python: exemples de code et comparaison PHP et Python: exemples de code et comparaison Apr 15, 2025 am 12:07 AM

PHP et Python ont leurs propres avantages et inconvénients, et le choix dépend des besoins du projet et des préférences personnelles. 1.Php convient au développement rapide et à la maintenance des applications Web à grande échelle. 2. Python domine le domaine de la science des données et de l'apprentissage automatique.

Comment empêchez-vous l'injection SQL en PHP? (Déclarations préparées, APD) Comment empêchez-vous l'injection SQL en PHP? (Déclarations préparées, APD) Apr 15, 2025 am 12:15 AM

L'utilisation de déclarations de prétraitement et l'APD dans PHP peut effectivement empêcher les attaques d'injection SQL. 1) Utilisez PDO pour vous connecter à la base de données et définir le mode d'erreur. 2) Créez des instructions de prétraitement via la méthode de préparation et transmettez des données à l'aide des espaces réservés et exécutez des méthodes. 3) Traitez les résultats de la requête et assurez la sécurité et les performances du code.

See all articles