A lightweight PSR-15 compliant framework for building HTTP applications with middleware support and dependency injection.
- PHP 8.2, 8.3, or 8.4
- Composer
- Docker (for development environment)
Install the framework as a dependency in your project:
composer require larium/frameworkIf you want to contribute to the framework or run it locally:
- 
Clone the repository: git clone [email protected]:Larium/framework.git cd framework 
- 
Install dependencies: composer install 
This project uses Docker for consistent development environments across different PHP versions.
The project includes several make commands for common development tasks:
- make docker-build- Build Docker image for PHP 8.4
- make docker-build-8.3- Build Docker image for PHP 8.3
- make docker-build-8.2- Build Docker image for PHP 8.2
- make composer-update- Update dependencies using PHP 8.4 Docker container
- make composer-update-8.3- Update dependencies using PHP 8.3 Docker container
- make composer-update-8.2- Update dependencies using PHP 8.2 Docker container
- make run-tests- Run tests using PHP 8.4 Docker container
- make run-tests-8.3- Run tests using PHP 8.3 Docker container
- make run-tests-8.2- Run tests using PHP 8.2 Docker container
If you prefer to work without Docker:
- 
Install PHP 8.2+ with required extensions: - bcmath
- zip
- xdebug (for development)
 
- 
Install Composer if not already installed: curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer
- 
Install dependencies: composer install 
- 
Run tests: ./vendor/bin/phpunit tests/ 
<?php
# public/index.php
declare(strict_types = 1);
use Larium\Framework\Framework;
use Larium\Framework\Middleware\RoutingMiddleware;
use Laminas\Diactoros\ServerRequestFactory;
use Larium\Framework\Middleware\ActionResolverMiddleware;
use Larium\Framework\Provider\ContainerProvider;
require_once __DIR__ . '/../vendor/autoload.php';
(function () {
    /** @var ContainerProvider [implement the ContainerProvider interface] */
    $containerProvider
    $container = $containerProvider->getContainer();
    $f = new Framework($container);
    $f->pipe(RoutingMiddleware::class, 1);
    $f->pipe(ActionResolverMiddleware::class, 0);
    $f->run(ServerRequestFactory::fromGlobals());
})();- src/- Framework source code
- tests/- Test suite
- .docker/- Docker configuration for different PHP versions
- build/- Build artifacts and coverage reports
- vendor/- Composer dependencies
Run the test suite using one of these methods:
Using Make (recommended):
make run-testsUsing PHPUnit directly:
./vendor/bin/phpunit tests/- Fork the repository
- Create a feature branch
- Make your changes
- Run tests: make run-tests
- Submit a pull request
MIT License - see LICENSE file for details.