Skip to content

CLI Reference

Phexium uses Taskfile as its task runner. All development commands are defined in taskfile.yaml.

Installation

sudo sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d

Usage

task                              # List all tasks
task <task-name>                  # Run a task
task tests:unit -- path/to/test  # Pass arguments

Development Environment

Task Description
dev:environment:install Install local environment
dev:environment:start Start Docker containers
dev:environment:stop Stop Docker containers

Testing

Task Description
tests:unit Run unit tests
tests:integration Run integration tests
tests:acceptance Run all acceptance tests
tests:acceptance:demoInMemory Acceptance with InMemory
tests:acceptance:demoSqlite Acceptance with SQLite
tests:all All tests with merged coverage
tests:mutation Mutation tests

Code Quality

Task Description
coding-standard:lint Check PHP coding standard
coding-standard:fix Apply coding standard fixes
rector Run Rector refactoring
deptrac:analyse Analyze architecture dependencies

Database

Task Description
database:sqlite:init Initialize SQLite with fixtures
database:mysql:init Initialize MySQL with fixtures
database:postgresql:init Initialize PostgreSQL with fixtures

Documentation

Task Description
docs:install Install MkDocs dependencies
docs:serve Start documentation server
docs:build Build static documentation

Release

Task Description
release:lint Check rector and coding standard
release:fix Apply fixes
release:test Run all tests and deptrac
release:all Complete release preparation

Examples

# Run unit tests for specific directory
task tests:unit -- tests/Phexium/Unit/Domain/Collection/

# Run acceptance test for specific feature
task tests:acceptance:demoInMemory -- tests/AppDemo/Acceptance/Library.feature

Docker Integration

Tasks run PHP commands inside Docker containers. No local PHP installation is required.