sebsept / ps_dev_base
Tools for quality Prestashop Module development.
Fund package maintenance!
Ko Fi
Installs: 354
Dependents: 0
Suggesters: 0
Security: 0
Stars: 9
Watchers: 3
Forks: 0
Open Issues: 12
Type:composer-plugin
Requires
- php: >=7.2.5
- composer-plugin-api: ^2.0
- ext-json: *
- phpstan/phpstan: ^1.9.1
Requires (Dev)
- composer/composer: ^2.0
Provides
- prestashop/autoindex: ^1.0
README
This package provides tools for Prestashop module development.
It's made to remove the burden of intallation and configuration of essential development tools.
Quik start :
composer require --dev sebsept/ps_dev_base composer list psdt
Requirements
- Have composer 2 installed (not composer 1.x). If you do not have composer, it's time to start learning it.
- Your module must require php >= 7.2.5
For easier use, I highly suggest to use command line autocompletion for composer.
There's a couple options available, this one is recommanded by composer.
Featured tools
- Code formating : php-cs-fixer configured using prestashop standard, ready to use out of the box.
- Code analysis : phpstan autodetect PrestaShop root directory or asks (nothing more to do).
fill-indexes
command, to add required index.php files. (see below for details)- git pre-commit hook installer (details below)
More tools will come ...
How does it work ?
This package is composer plugin, it adds new commmands to composer command line tool.
These commands are under the namespace psdt
(PrestaShop Developement Tools).
The first time a command is run, a composer script is also added.
For example, the php-cs-fixer can be invoked with composer psdt:php-cs-fixer
.
You can even take an additionnal step by defining an alias.
Provided commands
- psdt:php-cs-fixer
- psdt:phpstan
- psdt:fill-indexes
- psdt:pre-commit (not supported on Windows yet)
php-cs-fixer
composer psdt:php-cs-fixer [--reconfigure]
Formats php files for complying with the Prestashop standards. This allows consistent code base.
Provided by PrestaShop/php-dev-tools/.
Autoinstallation provided by this package.
Allows complying with the Prestashop standards.
On the first run (or when --reconfigure
option is used):
- the PrestaShop/php-dev-tools package will be installed if needed.
- .php_cs file will be (re)created with the Prestashop standard styles. (Destructive operation, get your files under version control!)
- the composer script php-cs-fixer will be added. So you can invoke this command with
composer php-cs-fixer
The next runs will run the fixer. All files will be formated according to the Prestashop standard.
phpstan
composer psdt:phpstan [--reconfigure]
Run phpstan configured with Prestashop standards against a PrestaShop installation.
Provided by PrestaShop/php-dev-tools/.
Autoinstallation provided by this package.
The first run or composer psdt:phpstan --reconfigure
do :
- package
prestashop/prestashop-dev-tools
will be installed (if needed) - creates/overrides the phpstan.neon configuration with Prestashop standards.
- guess the _PS_ROOT_DIR_ and asks for confirmation (or you can provide another path) (this path is needed for analyse)
- install a composer script
phpstan
The next runs will trigger composer psdt:phpstan
fill-indexes
composer psdt:fill-indexes [--check-only]
Add the missing index.php files on each folder. Existing index.php files are not overriden.
--check-only
option only list the missing index.php files without adding them.
This option is usefull for running in the git's pre-commit hook.
This is a security requirement of Prestashop to avoid the contents to be listed.
More information on the official documentation.
I can't include prestashop/autoindex because it targets php 5.6 and has other issues.
My replacement is simpler and doesn't require additionnal dependencies.
Git Pre-commit hook installer
composer psdt:pre-commit [--reconfigure]
precommit.sh
file is added- symlink it to
.git/hooks/pre-commit
is created - symlink is made executable
- composer script
pre-commit
is added
Before a commit is performed the composer script pre-commit
will be triggered and must succeed (return 0), otherwise the commit is aborted.
The commands in composer pre-commit
script hook are provided by command implementing the PreCommitRegistrableCommand
interface.
This is currently phpstan
, php-cs-fixer
and fill-indexes
You can tweak the script by just editing the composer script.
You can run the composer psdt:pre-commit
(or composer run-script pre-commit
) to predict if commit will fail or not.
Installation
composer require --dev sebsept/ps_dev_base
Under the hood / Credits
php-cs-fixer and phpstan configuration and bootstraping are provided by PrestaShop/php-dev-tools/.
Repository actions are made by github workflows.
What's next ?
See is issues in this GitHub repository.
Development notes (for this package)
Install the precommit hook with ln -s $(pwd)/precommit.sh .git/hooks/pre-commit
(works on linux).
Ensure to also make the file executable chmod +x precommit.sh
.