mediashare / psysh
There is no license information available for the latest version (0.5.7) of this package.
0.5.7
2025-07-13 15:26 UTC
Requires
- php: >=8.2
- psy/psysh: ^0.12.9
Requires (Dev)
- ext-ctype: *
- ext-iconv: *
- doctrine/dbal: ^3.9.5
- doctrine/doctrine-bundle: ^2.15
- doctrine/doctrine-migrations-bundle: ^3.4.2
- doctrine/orm: ^3.5
- symfony/console: 7.3.*
- symfony/dotenv: 7.3.*
- symfony/flex: ^2.8.1
- symfony/form: 7.3.*
- symfony/framework-bundle: 7.3.*
- symfony/property-info: 7.3.*
- symfony/runtime: 7.3.*
- symfony/twig-bundle: 7.3.*
- symfony/validator: 7.3.*
- symfony/yaml: 7.3.*
- twig/extra-bundle: ^2.12|^3.21
- twig/twig: ^2.12|^3.21.1
README
🚀 Fonctionnalités
- âś… Compatible avec tous les projets PHP/Symfony (toutes versions)
- ✅ Détection automatique d'environnement (Symfony, Laravel, PHP générique)
- ✅ Commandes PHPUnit interactives complètes
- ✅ Monitoring Xdebug intégré
- âś… Autoloader intelligent multi-projet
- âś… Variables framework-specific automatiques
📦 Installation
Méthode 1: Copier dans votre projet
# Copiez le dossier .psysh dans votre projet cp -r .psysh /path/to/your/project/ cd /path/to/your/project # Lancez PsySH Enhanced psysh --config ./.psysh/config.php
Méthode 2: Utilisation portable
# Gardez .psysh dans un dossier central # Lancez depuis n'importe quel projet psysh --config /path/to/.psysh/config.php
Méthode 3: Script de démarrage
# Utilisez le script de démarrage
php .psysh/start.php
Commandes disponibles
phpunit:create <service>
Crée un nouveau test PHPUnit interactif.
>>> phpunit:create App\Service\InvoiceService ✅ Test créé : InvoiceServiceTest (mode interactif)
phpunit:add <method>
Ajoute une méthode de test au test actuel.
>>> phpunit:add testGenerate ✅ Méthode testGenerate ajoutée
phpunit:code
Entre en mode code interactif pour développer le test.
>>> phpunit:code 📋 Mode code activé. Tapez "exit" pour quitter le mode code. [Code Mode] >>> $invoiceService = new InvoiceService(); [Code Mode] >>> $user = new User(['id' => 1, 'email' => 'test@example.com']); [Code Mode] >>> $result = $invoiceService->generate($user); [Code Mode] >>> exit ✅ Code ajouté au test (3 lignes)
phpunit:assert <assertion>
Ajoute une assertion au test actuel.
>>> phpunit:assert $result->getTotal() == 80 ✅ Assertion ajoutée : $result->getTotal() == 80
phpunit:run [test]
Exécute le test actuel ou un test spécifique.
>>> phpunit:run
🧪 Exécution : testGenerate
✅ Test réussi avec 2 assertions
phpunit:export <testName> [path]
Exporte un test vers un fichier.
>>> phpunit:export InvoiceServiceTest ✅ Test exporté vers tests/Generated/InvoiceServiceTest.php
phpunit:list
Liste tous les tests actifs.
>>> phpunit:list
đź“‹ Tests actifs :
- InvoiceServiceTest::testGenerate [3 lignes, 2 assertions]
- UserServiceTest::testCreate [5 lignes, 1 assertion]
phpunit:help <className>
Obtient de l'aide contextuelle pour une classe.
>>> phpunit:help InvoiceService 📋 InvoiceService - Méthodes disponibles : - generate(User $user, array $products): Invoice - calculate(float $amount): float - setTaxRate(float $rate): void
Exemple d'utilisation complète
# 1. Créer un test >>> phpunit:create App\Service\InvoiceService ✅ Test créé : InvoiceServiceTest # 2. Ajouter une méthode >>> phpunit:add testComplexScenario ✅ Méthode ajoutée : testComplexScenario # 3. Développer le test en mode code >>> phpunit:code [Code Mode] >>> $user = new User(['id' => 1, 'email' => 'test@example.com']); [Code Mode] >>> $products = [ [Code Mode] ... new Product(['id' => 1, 'price' => 50]), [Code Mode] ... new Product(['id' => 2, 'price' => 30]) [Code Mode] ... ]; [Code Mode] >>> $invoiceService = new InvoiceService(); [Code Mode] >>> $result = $invoiceService->generate($user, $products); [Code Mode] >>> exit ✅ Code ajouté au test (5 lignes) # 4. Ajouter des assertions >>> phpunit:assert $result->getTotal() == 80 >>> phpunit:assert count($result->getItems()) == 2 # 5. Exécuter le test >>> phpunit:run 🧪 Exécution : testComplexScenario ✅ Test réussi avec 2 assertions # 6. Exporter le test >>> phpunit:export InvoiceServiceTest ✅ Test exporté vers tests/Generated/InvoiceServiceTest.php
Fonctionnalités
- ✅ Création de tests interactifs
- âś… Mode code avec variables persistantes
- âś… Gestion des assertions
- ✅ Exécution des tests
- âś… Export vers fichiers PHPUnit
- âś… Aide contextuelle
- âś… Gestion des erreurs
- âś… Interface utilisateur avec emojis
Architecture
.psysh/
├── Model/
│ └── InteractiveTest.php # Modèle de test interactif
├── Service/
│ └── PHPUnitService.php # Service de gestion des tests
├── Traits/
│ └── PHPUnitCommandTrait.php # Fonctionnalités communes
├── PsyCommand/
│ ├── PHPUnitCreateCommand.php # Commande create
│ ├── PHPUnitAddCommand.php # Commande add
│ ├── PHPUnitCodeCommand.php # Commande code
│ ├── PHPUnitAssertCommand.php # Commande assert
│ ├── PHPUnitRunCommand.php # Commande run
│ ├── PHPUnitExportCommand.php # Commande export
│ ├── PHPUnitListCommand.php # Commande list
│ └── PHPUnitHelpCommand.php # Commande help
├── autoload.php # Chargement automatique
├── config.php # Configuration PsySH
└── README.md # Documentation