Installation
Two methods, which give the same files. The choice depends on where the stubs should live.
| Method | Downloaded size | When to choose it |
|---|---|---|
| Partial Git clone | 32 MB for one version | Development workstation, continuous integration, IDE |
| Composer | 309 MB (every version) | A project that wants everything declared in its composer.json |
Partial Git clone (recommended)
A partial clone downloads only the folders you ask for. For Dolibarr 18 and the PHPStan fixes file:
git clone --depth 1 --filter=blob:none --sparse https://github.com/rycks/dolibarr-stubs-all.git ~/dolibarr-stubs-all
cd ~/dolibarr-stubs-all
git sparse-checkout set phpstan dolibarr-18
Both commands take about three seconds and use 32 MB, Git history included.
To add versions later, run sparse-checkout again with the full list:
git sparse-checkout set phpstan dolibarr-18 dolibarr-20 dolibarr-22
To update the stubs, a git pull in the clone is enough.
Keep this clone outside your module folder. The stubs are not part of your code: they do not belong in its repository, and a tool that walks the module has no reason to go through them.
Composer
The package is caprel/dolibarr-stubs-all. It only exists as dev-master, there is no tagged version:
composer require --dev caprel/dolibarr-stubs-all:dev-master
The stubs land in vendor/caprel/dolibarr-stubs-all/, with all 15 Dolibarr versions at once.
[!WARNING] With this method, the 309 MB of stubs sit in the
vendor/folder of your module. A PHPStan configuration that analyses.then walks through all of them: analysing a two-file module goes from 3 seconds to more than 5 minutes and 1.5 GB of memory. List your source folders inpaths, see Configuring PHPStan.
What to point at next
Whatever the method, PHPStan and the IDE need two paths:
| Path | Role |
|---|---|
<stubs>/dolibarr-NN/ |
The declarations of Dolibarr version NN |
<stubs>/phpstan/dolibarr-core.stub |
The PHPDoc fixes, for PHPStan only |
<stubs> is ~/dolibarr-stubs-all with the clone above, or vendor/caprel/dolibarr-stubs-all with Composer.
Next: Configuring PHPStan.