PHP tools to build robust long-running processes.
Geezer is a PHP library that provides tools for building and managing robust long-running processes. It uses Docker for development environment setup and includes a comprehensive set of development tools for testing, code analysis, and maintenance.
- PHP ^8.4
- ext-pcntl extension
- Docker
- recruiterphp/concurrency ^5.0 - For concurrent processing
- symfony/console ^7.3 - For command-line interface
Clone the repository and install dependencies:
git clone <repository-url>
cd geezer
make installThe project includes a comprehensive Makefile with the following targets:
make build- Build the Docker imagemake up- Start the services in detached modemake down- Stop the servicesmake clean- Clean up containers and volumes
make install- Install composer dependenciesmake update- Update composer dependencies
make test- Run all PHPUnit testsmake phpstan- Run PHPStan static analysismake rector- Run Rector for code refactoringmake fix-cs- Fix code style using PHP-CS-Fixer
make shell- Open a bash shell in the PHP containermake logs- View PHP container logs in follow mode
-
Start the development environment:
make up
-
Run tests to ensure everything is working:
make test -
Access the container for development:
make shell
The project maintains high code quality standards using:
- PHPUnit for unit testing
- PHPStan for static analysis
- PHP-CS-Fixer for code formatting
- Rector for automated refactoring
Run all quality checks:
make test
make phpstan
make fix-cs
make rector