112 lines
2.9 KiB
Markdown
112 lines
2.9 KiB
Markdown
# PHPStarter
|
||
|
||
A minimal, modern PHP project template that provides a clean foundation for building small to medium web applications.
|
||
|
||
## Features
|
||
|
||
- PSR‑4 autoloading via Composer
|
||
- Environment configuration using [`vlucas/phpdotenv`](https://github.com/vlucas/phpdotenv)
|
||
- Strict typing enabled across the project
|
||
- Simple and extensible database connection helper
|
||
- Ready‑to‑use [PHPUnit](https://phpunit.de/) testing setup
|
||
- [PHP‑CS‑Fixer](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer) configuration for consistent code style
|
||
- Clean `public/` entry point for web requests
|
||
- Fully compatible with the [PHPStarter CLI](https://gitea.ramoncaballero.dev/phpstarter-cli.git)
|
||
|
||
## Requirements
|
||
|
||
- PHP 8.2+
|
||
- Composer
|
||
- Apache (or PHP's built‑in server)
|
||
- MariaDB
|
||
|
||
## Installation
|
||
|
||
It is recommended to use [PHPStarter CLI](https://gitea.ramoncaballero.dev/phpstarter-cli.git), as it automates the entire setup process and requires almost no manual configuration.
|
||
|
||
However, you can also install PHPStarter manually by following the steps below.
|
||
|
||
|
||
Clone the repository:
|
||
|
||
```bash
|
||
cd /var/www/sites/
|
||
git clone https://gitea.ramoncaballero.dev/PHPStarter.git <myproject>
|
||
cd <myproject>
|
||
```
|
||
|
||
Install dependencies:
|
||
|
||
```bash
|
||
composer install
|
||
```
|
||
|
||
Copy the environment file:
|
||
|
||
```bash
|
||
sudo cp config/PHPStarter.env.example config/PHPStarter.env
|
||
```
|
||
|
||
Edit your environment variables as needed.
|
||
|
||
## Directory Structure
|
||
|
||
```bash
|
||
PHPStarter/
|
||
bin/ → Executable scripts or CLI utilities
|
||
config/ → Environment files
|
||
docs/ → Project documentation, guides, and reference material
|
||
public/ → Web root; front controller (`index.php`) and public assets (css, js, icons, ...)
|
||
src/ → Application source code (PSR‑4 autoloaded)
|
||
templates/ → Reusable HTML/PHP templates or view files
|
||
tests/ → PHPUnit test suites and testing utilities
|
||
translations/ → Localization files, language packs, or message catalogs
|
||
composer.json → Composer package definition and autoload configuration
|
||
composer.lock → Locked dependency versions for reproducible installs
|
||
phpunit.xml → PHPUnit configuration file
|
||
.php-cs-fixer.dist.php → Code style rules for PHP-CS-Fixer
|
||
```
|
||
|
||
## Running the Project
|
||
|
||
Using PHP's built‑in server:
|
||
|
||
```bash
|
||
php -S localhost:8000 -t public
|
||
```
|
||
|
||
Or configure Apache manually.
|
||
|
||
If using the [PHPStarter CLI](https://gitea.ramoncaballero.dev/phpstarter-cli.git), the virtual host is created automatically.
|
||
|
||
## Customization
|
||
|
||
You can safely modify:
|
||
|
||
- Namespace (default: `PHPStarter`)
|
||
- Directory structure
|
||
- Database logic
|
||
- Views/templates
|
||
|
||
The template is intentionally minimal to encourage flexibility.
|
||
|
||
## Testing
|
||
|
||
Run PHPUnit:
|
||
|
||
```bash
|
||
./vendor/bin/phpunit
|
||
```
|
||
|
||
## Code Style
|
||
|
||
Run PHP-CS-Fixer:
|
||
|
||
```bash
|
||
./vendor/bin/php-cs-fixer fix
|
||
```
|
||
|
||
## License
|
||
|
||
This project is provided as a template and may be used freely.
|