Skip to content

Composer

Composer is the PHP dependency manager used by the CPR backend.

Available Scripts

The composer.json defines several custom scripts:

CommandDescription
composer setupFull project setup (install, env, migrate, npm, build)
composer devStart all dev servers in parallel
composer dev:ssrStart dev servers with SSR enabled
composer testRun tests in parallel (10 processes)
composer stanRun PHPStan static analysis
composer pintRun Laravel Pint code formatter

composer setup

Runs the complete first-time setup:

bash
composer install          # Install PHP dependencies
copy .env.example .env    # Create environment file
php artisan key:generate  # Generate application key
php artisan migrate --force # Run database migrations
npm install               # Install Node.js dependencies
npm run build             # Build frontend assets

composer dev

Starts all development servers concurrently using npx concurrently:

bash
php artisan serve         # Laravel server (port 8000)
php artisan queue:listen  # Queue worker
php artisan pail          # Log watcher
npm run dev               # Vite dev server (port 5173)

composer test

Clears config cache and runs Pest tests in parallel:

bash
php artisan config:clear --ansi
php artisan test --parallel --processes=10

Key Dependencies

Production

PackageVersionPurpose
laravel/framework^12.0Core framework
laravel/sanctum^4.0API token authentication
laravel/fortify^1.30Authentication backend
spatie/laravel-permission^6.23Role-based access control
spatie/laravel-activitylog^4.12Audit logging
intervention/image^3.0Image processing
sentry/sentry-laravel^4.20Error tracking
dedoc/scramble^0.13.7API documentation generator
inertiajs/inertia-laravel^2.0Inertia.js adapter

Development

PackageVersionPurpose
pestphp/pest^4.1Testing framework
pestphp/pest-plugin-laravel^4.0Laravel test helpers
larastan/larastan^3.0PHPStan for Laravel
laravel/pint^1.18Code formatting
laravel/sail^1.52Docker environment
laravel/pail^1.2.2Log monitoring
mockery/mockery^1.6Mocking library

Common Tasks

Installing a New Package

bash
# Production dependency
composer require vendor/package

# Development dependency
composer require vendor/package --dev

Updating Dependencies

bash
# Update all packages
composer update

# Update a specific package
composer update vendor/package

# Check for outdated packages
composer outdated

Autoload Optimization

bash
# Development
composer dump-autoload

# Production (optimized)
composer install --optimize-autoloader --no-dev

CPR - Clinical Patient Records