Download the PHP package stanislas-poisson/php-dev-tools without Composer

On this page you can find all versions of the php package stanislas-poisson/php-dev-tools. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package php-dev-tools

php-dev-tools

The quality tools of the zairakai PHP projects, without Laravel: Pint, PHPStan, Rector, PHP Insights, markdownlint and the Git hooks, as a base that a project extends.

The principle

A project does not copy the rules of the tools. It has its own small configuration files, which extend the rules that live in vendor/. The rules are then always the ones of the installed version of this package, and the project only writes what is specific to it: an exclusion that is justified, a path, a rule it changes.

File of the project What it does
pint.json Only the rules and the exclusions that the project changes. They are merged with the base rules before Pint runs.
phpstan.neon.dist includes the base file, then sets the paths and the ignored errors of the project.
rector.php Calls Rector::configure() with the version of PHP and the directories.
phpinsights.php Calls Insights::config() with the overrides of the project.
.markdownlint.json extends the base file.
Makefile Includes Makefile.inc and adds the targets of the project.

Requirements

PHP 8.3 or higher, like KMark, PPTX-Enigma and French-Postal-Code-Package.

Installation

PHP Insights needs the dealerdirect/phpcodesniffer-composer-installer plugin: the second command allows it. Then add the scripts to the composer.json of the project, so that composer cs, composer quality and the hooks work:

The command

vendor/bin/php-dev-tools <command>

Command Description
cs, cs:fix Check, or fix, the code style with Pint.
analyse PHPStan at the maximum level with the strict rules and the PHPUnit extension, without a baseline.
rector, rector:fix Check, or apply, what Rector changes.
insights PHP Insights, which must give 100 % for the code, the complexity, the architecture and the style.
markdown markdownlint on the Markdown files (needs Node.js).
quality cs, analyse, rector and insights.
quality:fast cs and analyse: the pre-commit hook.
quality:fix rector:fix, then cs:fix.
init Create the files that extend the base ones.
hooks Activate the Git hooks.

The commands run from the root of the project. A command that fails stops the ones that follow, and gives its exit code. Pint does not use its cache: a check never relies on an old result.

Extending the base

Pint

pint.json of the project holds only what it changes. Its rules replace the ones of the base by name, and the exclude of its finder is added to the one of the base (build and vendor are always excluded):

The merged file is written in build/pint.json. Do not run vendor/bin/pint by hand: it would read only the file of the project.

PHPStan

Rector

Rector::configure() returns the builder of Rector, with the sets of laravel-dev-tools for the version of PHP and without the Laravel ones. The directories are src and tests, and the ones that do not exist are left out.

PHP Insights

The lists remove and exclude are added to the ones of the base. The keys of add, config and requirements replace the ones of the base. Any other key replaces the base. The base asks for 100 % everywhere, and removes the rules that contradict Pint.

A file must not be excluded to hide an error: write why next to each exclusion.

markdownlint

The Git hooks

vendor/bin/php-dev-tools hooks sets core.hooksPath to the hooks directory of this package, so that the hooks are always the ones of the installed version.

Hook What it does
commit-msg The message follows the commit convention of the zairakai handbook: type(scope): #TICKET subject, with a type among feat, fix, docs, style, refactor, perf, test, chore, ci and build, an optional scope in lowercase, a ticket, a first line of 72 characters at most and a blank second line. A work in progress follows the same format. The messages that Git writes itself (Merge, Revert, fixup!) are accepted.
prepare-commit-msg Adds the ticket of a branch named feature/#12-name, fix/#12-name or hotfix/#12-name after the type of the message: feat(x): subject becomes feat(x): #12 subject.
pre-commit composer quality:fast.
pre-push composer quality.

git commit --no-verify and git push --no-verify skip them.

Makefile

Makefile.inc gives the targets help, hooks, cs, cs-fix, analyse, rector, rector-fix, insights, markdown, test, coverage, quality-fast, quality and quality-fix. Include it in the Makefile of the project:

Known limits

Versioning

The package follows Semantic Versioning. Require it with ^1.0.

A major version changes what a project writes or calls:

A minor version can add a command, a hook or an option, and can add or tighten a rule of the base, or raise the version of a tool: a project that was green can turn red. The changelog lists these changes, and a project that does not want to follow can keep the version it has.

A patch version fixes a defect without changing what the tools ask for.

Development

See CONTRIBUTING.md for the details.

Roadmap

  1. The configurations, the command and the hooks (#3): done.
  2. The community files (#2): done.
  3. Used in KMark, PPTX-Enigma and French-Postal-Code-Package: done.
  4. The first release, 0.1.0 (#6): done.
  5. PHP 8.3 as the lowest version, with the other projects (#9): done.
  6. The first stable version, 1.0.0 (#12).

License

MIT. Copyright (c) 2026 Stanislas Poisson.


All versions of php-dev-tools with dependencies

PHP Build Version
Package Version
Requires php Version >=8.3
laravel/pint Version ^1.32.1
nunomaduro/phpinsights Version ^2.12
phpstan/phpstan Version ^2.3.1
phpstan/phpstan-phpunit Version ^2.1.1
phpstan/phpstan-strict-rules Version ^2.1
rector/rector Version ^2.7
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package stanislas-poisson/php-dev-tools contains the following files

Loading the files please wait ...