Skip to content

Installation

Phexium adopts a Copy-Based Framework distribution model. Unlike traditional package-based frameworks installed in vendor/, this model copies framework code directly into your project, enabling local customization while maintaining synchronization capabilities.

See Copy-Based Framework for the full benefits and workflow.

Quick Start

php tools/phexium install

The interactive installer guides you through template selection, database configuration, and environment setup.

After installation, access your application at http://localhost:8080.

Contributing to Phexium? If you want to test or contribute to the framework itself, see the Contributor Installation.

Installation Process

The installer runs five phases:

1. Preparation

Verifies prerequisites:

  • PHP 8.4+
  • Git
  • Task (task runner)
  • Docker

2. Template Selection

Choose between:

  • starter - Minimal skeleton with Homepage module only
  • demo - Complete library management application

3. Download

Downloads framework files from upstream:

  • Framework core (src/, tests/Phexium/)
  • Configuration files (taskfile.yaml, composer.json, etc.)
  • Docker environment
  • Database schemas
  • Selected template files

4. Configuration

  • Creates .env from template
  • Prompts for database type (SQLite, MySQL, PostgreSQL)
  • Transforms namespaces (AppDemo/AppStarterApp)
  • Starts Docker environment
  • Installs Composer dependencies

5. Finalization

  • Initializes database (demo template only)
  • Saves version tracking for future updates

Template Choices

Starter Template

The starter template (app/starter/) provides minimal setup for new projects:

  • Homepage module with welcome message
  • Basic configuration
  • Minimal tests

Demo Template

The demo template (app/demo/) provides a full-featured example application:

  • Library module (full CRUD with events)
  • Loan module (borrowing management)
  • User module (authentication)
  • Complete REST API
  • Comprehensive tests

Database Options

  • SQLite: Single-file database, recommended for development
  • MySQL: Production-ready RDBMS
  • PostgreSQL: Advanced RDBMS with strong ACID compliance

Database type is configured via database.type in .env.

After Installation

# Verify installation
http://localhost:8080

# Run tests
task tests:all

# Commit initial state
git add . && git commit -m "Initial project setup"

Troubleshooting

Installation logs are saved to install.log for troubleshooting.