Comment étendre les fonctions PHP en utilisant Mockery ?
Utilisez Mockery pour étendre les fonctions PHP et simuler le comportement de la fonction en suivant ces étapes : Installez la bibliothèque Mockery. Utilisez Mockery::mock('alias:function name') pour créer une fonction fictive, où l'alias est utilisé pour faire référence à la fonction simulée et le nom de la fonction est la fonction qui doit être simulée. Utilisez ShouldReceive('function name') et andReturn() pour spécifier la valeur de retour ou le comportement de la fonction simulée. Une fonction fictive peut être appelée via son alias et renverra les résultats attendus.
Comment utiliser Mockery pour étendre les fonctions PHP ?
Préface
Dans les tests unitaires, le mocking est un outil puissant qui nous permet de créer de faux objets ou fonctions sans avoir à interagir directement avec eux. Mockery est une bibliothèque moqueuse populaire en PHP qui fournit un moyen simple et flexible de simuler un large éventail de dépendances.
Configurer Mockery
Pour utiliser Mockery, vous devez d'abord l'installer :
composer require mockery/mockery
Extension des fonctions PHP
Mockery peut étendre les fonctions PHP, ce qui signifie que nous pouvons remplacer le comportement de n'importe quelle fonction PHP pour fournir les résultats souhaités dans les tests.
Syntaxe :
Mockery::mock('alias:函数名称');
alias
: Le nom utilisé pour référencer la fonction simulée函数名称
:被模拟的函数名称
alias
:用于引用模拟函数的名称实战案例
示例 1:模拟 time()
函数
$mockTime = Mockery::mock('alias:time'); $mockTime->shouldReceive('time') ->andReturn(1234567890);
这将创建一个名为 time
的模拟函数,当被调用时将返回 1234567890。
示例 2:模拟 rand()
函数
$mockRand = Mockery::mock('alias:rand'); $mockRand->shouldReceive('rand') ->andReturnUsing(function($min, $max) { return $min + 1; });
这将创建一个名为 rand
Nom de la fonction
: Le nom de la fonction simulée li>
Exemple 1 : Simuler la fonction time()
time
qui sera appelé quand reviendra 1234567890. 🎜🎜🎜Exemple 2 : simulez la fonction rand()
🎜🎜rrreee🎜Cela créera une fonction simulée nommée rand
qui, lorsqu'elle est appelée, renverra la valeur minimale spécifiée plus 1 aléatoire nombre. 🎜🎜Conclusion🎜🎜En utilisant Mockery pour étendre les fonctions PHP, nous pouvons facilement nous moquer du comportement des dépendances et nous concentrer sur le test de la logique spécifique du code. Cela améliore considérablement les capacités de tests unitaires et nous permet de rechercher et de corriger les bogues plus efficacement. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

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

Outils chauds

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

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

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

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds





Laravel est un cadre PHP pour la création facile des applications Web. Il fournit une gamme de fonctionnalités puissantes, notamment: Installation: Installez le Laravel CLI globalement avec Composer et créez des applications dans le répertoire du projet. Routage: définissez la relation entre l'URL et le gestionnaire dans Routes / web.php. Voir: Créez une vue dans les ressources / vues pour rendre l'interface de l'application. Intégration de la base de données: fournit une intégration prête à l'emploi avec des bases de données telles que MySQL et utilise la migration pour créer et modifier des tables. Modèle et contrôleur: le modèle représente l'entité de la base de données et le contrôleur traite les demandes HTTP.

Lorsque vous développez des sites Web à l'aide de CRAFTCMS, vous rencontrez souvent des problèmes de mise en cache de fichiers de ressources, en particulier lorsque vous mettez fréquemment à mettre à jour les fichiers CSS et JavaScript, les anciennes versions des fichiers peuvent toujours être mises en cache par le navigateur, ce qui fait que les utilisateurs ne voient pas les derniers changements de temps. Ce problème affecte non seulement l'expérience utilisateur, mais augmente également la difficulté du développement et du débogage. Récemment, j'ai rencontré des problèmes similaires dans mon projet, et après une exploration, j'ai trouvé le plugin wiejeben / artist-laravel-mix, qui a parfaitement résolu mon problème de mise en cache.

J'ai eu un problème difficile lorsque je travaille sur un projet avec un grand nombre d'entités de doctrine: chaque fois que l'entité est sérialisée et désérialisée, la performance devient très inefficace, entraînant une augmentation significative du temps de réponse du système. J'ai essayé plusieurs méthodes d'optimisation, mais cela ne fonctionne pas bien. Heureusement, en utilisant le SIDUS / Doctrine-Serializer-Bundle, j'ai résolu avec succès ce problème, améliorant considérablement les performances du projet.

J'ai un problème délicat lors d'une campagne de marketing par courrier: comment créer et envoyer efficacement le courrier au format HTML. L'approche traditionnelle consiste à écrire du code manuellement et à envoyer des e-mails à l'aide d'un serveur SMTP, mais cela prend non seulement du temps, mais aussi des erreurs. Après avoir essayé plusieurs solutions, j'ai découvert Duwa.io, un Restapi simple et facile à utiliser qui m'aide à créer et à envoyer un courrier HTML rapidement. Pour simplifier davantage le processus de développement, j'ai décidé d'utiliser Composer pour installer et gérer la bibliothèque PHP de Duwa.io - Captaindoe / Duwa.

Lors du développement d'un site Web de commerce électronique, j'ai rencontré un problème difficile: comment fournir aux utilisateurs des recommandations de produits personnalisées. Au départ, j'ai essayé des algorithmes de recommandation simples, mais les résultats n'étaient pas idéaux et la satisfaction des utilisateurs a également été affectée. Afin d'améliorer la précision et l'efficacité du système de recommandation, j'ai décidé d'adopter une solution plus professionnelle. Enfin, j'ai installé Andres-Montanez / Recommandations-Bundle via Composer, ce qui a non seulement résolu mon problème, mais a également considérablement amélioré les performances du système de recommandation. Vous pouvez apprendre le compositeur via l'adresse suivante:

Pour installer Laravel, suivez ces étapes dans Séquence: Installer Composer (pour MacOS / Linux et Windows) Installez Laravel Installer Créer une nouvelle application d'accès au service de démarrage du projet (URL: http://127.0.0.1:8000) Configurer la connexion de la base de données (si nécessaire)

Lors du développement d'une plate-forme de commerce électronique, il est crucial de choisir le bon cadre et les bons outils. Récemment, lorsque j'essayais de créer un site Web de commerce électronique riche en fonctionnalités, j'ai rencontré un problème difficile: comment créer rapidement une plate-forme de commerce électronique évolutive et entièrement fonctionnelle. J'ai essayé plusieurs solutions et j'ai fini par choisir le modèle de projet avancé de FECMALL (FECMALL / FBBCBASE-APP-ADVANDAD). En utilisant le compositeur, ce processus devient très simple et efficace. Le compositeur peut être appris par l'adresse suivante: Adresse d'apprentissage

Le Framework Laravel a des méthodes intégrées pour afficher facilement son numéro de version pour répondre aux différents besoins des développeurs. Cet article explorera ces méthodes, y compris l'utilisation de l'outil de ligne de commande Composer, l'accès à des fichiers .env ou l'obtention d'informations de version via le code PHP. Ces méthodes sont essentielles pour maintenir et gérer le versioning d'applications Laravel.
