Installation
Vérifier la version de composer: composer --version
Directement depuis PhpStorm

Update
Vérifier les nouveaux updates ici
J'ai installé Tatter/patch ceci permet de presque faire la mise jour.
- utiliser la console de
Git Bashpuis aller dans le dossier de votre projet et taper la commande suivante (avec la version souhaitée):
./vendor/bin/patch -v 4.5.1
- Le script bug un peu. il va s'arrêter. Nous sommes dans la branche tatter. faire git add sur les fichier composer.json et composer.lock et les commiter.
- Changer de brancher pour la branche master
- Sélectionner le commit qui a été fait sur la branche tatter et faire un cherry-pick
- Vérifier les conflits et les résoudre
Installation de CodeIgniter DevKit
Utilisation de Devkit comme tools that CodeIgniter uses to help ensure quality code, including our coding standard.
DevKit contient php-cs-fixer, phpstan, phpunit, phpunit-coverage, rector
Installation
composer config minimum-stability dev
composer config prefer-stable true
composer require --dev codeigniter4/devkit
Configuration de cs fixer
CodeIngiter configuring cs fixer
Utilisation de cs fixer dans phpstorm
Autre possibilité de configuration
Si devkit est installé, il n'est pas nécessaire d'ajouter friendsofphp/php-cs-fixer dans le composer.json
set le path de cs fixer dans phpstorm

Puis, update composer.json

Pour que php-cs-fixer soit utilisé dans phpstorm, il faut ajouter dans insperction:
À partir d'ici, normalement, cs fixer nous montre les erreurs dans le code.
Dans le fichier composer.json, on peut ajouter la configuration de cs fixer
{
"scripts": {
"cs-fix": "php-cs-fixer fix --ansi --verbose --diff"
}
}
Depuis ici, on peut runner la commande composer cs-fix pour exécuter cs-fix.
PhpStan
L'installation est pratiquement la même que pour php-cs-fixer
Il faudra mettre à jour le fichier phpstan.neon.dist pour ajouter les dossiers à analyser
parameters:
tmpDir: build/phpstan
level: 6
paths:
- app/
- tests/
- my-comp-package/src
- my-comp-package/tests/
Dans le fichier composer
"scripts": {
"test": "phpunit",
"php-cs-fixer": "php-cs-fixer fix --config=.php-cs-fixer.dist.php",
"phpstan": "phpstan analyse -c phpstan.neon.dist --memory-limit 512M"
}
Php Psalm
L'installation est pratiquement la même que pour php-cs-fixer
Il faudra mettre à jour le fichier psaml.xml pour ajouter les dossiers à analyser
Il faudra ajouter (modifier) le fichier psalm.xml.dist pour définir les directories à analyser
<projectFiles>
<directory name="app/" />
<directory name="tests/" />
<directory name="my-comp-package/src/" />
<directory name="my-comp-package/tests/" />
<ignoreFiles>
<directory name="vendor" />
<directory name="app/Views" />
</ignoreFiles>
</projectFiles>
Dans composer
"scripts": {
"test": "phpunit",
"php-cs-fixer": "php-cs-fixer fix --config=.php-cs-fixer.dist.php",
"phpstan": "phpstan analyse -c phpstan.neon.dist",
"psalm": "vendor/bin/psalm --config=psalm.xml"
}
Rector
On prend le fichier rector.php de devkit (dossier Templates) et on le met à la racine du projet. Ensuite avec le bouton droit de la souris, on peut lancer rector avec Run
PHPUnit
Copier le fichier phpunit.xml.dist de CodeIgniter (il existe peut-être déjà) dans le dossier racine de votre projet
Installation avec composer
composer require --dev phpunit/phpunit
Configuration de phpunit dans phpstorm

Code coverage
Installer XDebug et ajouter dans le php.ini
; XDEBUG Extension
[xdebug]
zend_extension="c:/wamp64/bin/php/php8.1.28/zend_ext/php_xdebug-3.3.1-8.1-vs16-x86_64.dll"
;xdebug.mode allowed are : off develop coverage debug gcstats profile trace
xdebug.mode =coverage
xdebug.output_dir ="c:/wamp64/tmp"
xdebug.show_local_vars=0
xdebug.log="c:/wamp64/logs/xdebug.log"
;xdebug.log_level : 0 Criticals, 1 Connection, 3 Warnings, 5 Communication, 7 Information, 10 Debug Breakpoint
xdebug.log_level=7
xdebug.profiler_output_name=trace.%H.%t.%p.cgrind
xdebug.use_compression=false
Choisir le dossier de couverture de code
Dans le fichier phpunit.xml.dist, ajouter les lignes suivantes pour spécifier le dossier de couverture de code
<source>
<include>
<!--<directory suffix=".php">./app</directory>-->
<directory suffix=".php">./src</directory>
</include>
<exclude>
<directory suffix=".php">./app/Views</directory>
<file>./app/Config/Routes.php</file>
</exclude>
</source>
Namespace et autoloading
Lorsqu'on utilise composer, on ajoute les namespaces dans la partie autoloader
{
"autoload": {
"psr-4": {
"App\\": "app/",
"MigrationBuilder\\": "src/"
}
}
}
Ensuite, pour pousser les changements, on fait dans phpstorm
Code -> Detect PSR-0 Namespace Roots
Debug
Pour le débug, il faut ajouter dans le php.ini
xdebug.mode=debug, coverage
xdebug.client_host=localhost
xdebug.client_port=9003
Avec debug, coverage, on peut utiliser xdebug pour les deux modes.
Ensuite, créer une page avec phpinfo() et prendre la source code pour l'ajouter dans Run -> Web Server Debug Validation