Download the PHP package nodus-it/dev-tools without Composer

On this page you can find all versions of the php package nodus-it/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 dev-tools

nodus-it/dev-tools

Unified developer commands for Nodus projects. Instead of maintaining copied dev:up/dup/pint/qa scripts in every repo, the logic lives centrally in this Composer plugin. Per project you only configure, you don't copy.

Two command groups from one codebase:

Three invocation layers:

Form works where example
composer d:up / composer qa everywhere, no setup safest fallback
./vendor/bin/nd up everywhere after composer install CI
nd up / nd qa with .envrc/direnv or an alias local everyday use

Installation (in the consuming project)

dev-tools is a dev tool and belongs in the project's require-dev:

Composer will ask whether the plugin may run. Allow it permanently:

Why require-dev — and why the tools still come along

dev-tools pulls in laravel/pint and phpstan/phpstan through its own require (not require-dev, which is not installed transitively). They still never end up in production:

The one rule: always put dev-tools in require-dev, never in require.

Configuration

Zero-config goal: if a project follows the convention (compose files .tools/docker/compose.yml + compose.<env>.yml, service app, Pest, a root phpstan.neon), it needs no extra.nodus-dev block at all. The section below is only for deviations.

Everything project-specific lives under extra.nodus-dev in composer.json. Every field has a default.

Field Default Meaning
dir .tools/docker directory holding the compose files
app-service app service used by sh, art, fresh
artisan php artisan artisan invocation inside the container
default-env dev environment used without --env
environments dev/stage/prod compose file layers per environment
test heuristic test runner; without a value: Pest, otherwise artisan test
pint-config auto path to a Pint config (else local pint.json / package default)
phpstan-config auto path to a PHPStan config (else local phpstan.neon / central base)
phpstan-paths ["app","src"] analysis paths in the zero-config case only (no local phpstan.neon)

Migrating an existing project

Point an AI agent in the target project at ADOPT.md — it migrates the command layer and QA and clears out old script/config leftovers (Docker images are left untouched):

Docker commands (d:*)

composer … nd … effect
d:up nd up compose up -d
d:down nd down compose down
d:build nd build compose build
d:ps nd ps compose ps
d:logs [svc] nd logs [svc] compose logs -f
d:sh [svc] nd sh [svc] shell in the container (bash, else sh)
d:art … nd art … artisan in the app container
d:fresh nd fresh artisan migrate:fresh --seed
nd exec … arbitrary command in the app container
nd run … one-off container (run --rm)

Pick the environment: --env=prod or -e prod.

Passing options through to artisan:

QA commands (qa:*)

composer … nd … effect
qa:pint nd pint run Pint — --test to only check
qa:stan nd stan PHPStan analysis
qa:test nd test tests (Pest/PHPUnit/artisan test)
qa nd qa pint --teststantest, stops at the first failure

Deliberately no short composer aliases (pint/test/…) so the plugin never shadows identically named project scripts. The short forms exist via the nd binary. Docker stays under d:*.

Central QA rules, locally inheritable

dev-tools ships a base config: config/pint.json and config/phpstan.neon. The commands use them automatically as long as the project does not provide its own.

app:setup

composer app:setup (or nd setup) gets a freshly cloned project running — every step is guarded by file existence:

  1. .env from .env.example (if missing)
  2. artisan key:generate + artisan migrate --force (if artisan exists)
  3. npm install && npm run build (if package.json exists)
  4. artisan boost:install (if laravel/boost is installed)

nd without vendor/bin/ (optional)

An .envrc in the project (using direnv):

Then nd up / nd qa works inside the project directory. Without direnv an alias does the job: nd() { ./vendor/bin/nd "$@"; }.

License

MIT — see LICENSE.


All versions of dev-tools with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
composer-plugin-api Version ^2.0
laravel/pint Version ^1.18
phpstan/phpstan Version ^2.1
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 nodus-it/dev-tools contains the following files

Loading the files please wait ...