A lightweight, object-oriented PHP micro-framework built from scratch. Designed for learning and applying SOLID principles, design patterns, and clean architecture.
- Docker & Docker Compose
- Git
- Clone the repository:
git clone <repo-url>
cd nesCore- Start the environment:
docker compose up -d --build- Verify installation:
docker compose ps
curl http://localhost:8080/healthAccess the application at http://localhost:8080
Access the database via Adminer at http://localhost:8081:
- Server:
mariadb - Username:
nescore - Password:
nescore - Database:
nescore
# Run tests
docker compose exec frankenphp ./vendor/bin/phpunit
# Code analysis
docker compose exec frankenphp ./vendor/bin/phpstan analyse src/
# Format code
docker compose exec frankenphp ./vendor/bin/php-cs-fixer fix .
# Stop environment
docker compose down
docker compose down -v # Also remove database volumeThe .env file contains public configuration. Database credentials are in .env.local (not tracked in git for security).
Copy .env.local template if needed:
cp .env.local.example .env.localThen edit with your local credentials.
Container won't start:
docker compose logs frankenphp
docker compose down && docker compose up -d --buildPort already in use:
Change ports in docker-compose.yaml or kill the process using the port.
Database connection errors:
Verify MariaDB is running and credentials in .env match docker-compose.yaml.
- Language: PHP 8.4+
- Runtime: FrankenPHP
- Database: MariaDB
- Web Server: Caddy
- Testing: PHPUnit
- Analysis: PHPStan
- Formatting: PHP-CS-Fixer
Please read CONTRIBUTING.md for guidelines.
MIT License - See LICENSE file for details
- CLAUDE.md - AI assistant guidelines
- CONTRIBUTING.md - Contributing guidelines