refactor: reorganize to standard PHP structure

- Moved /lib → /src (PHP source code)
- Moved /includes → /public/includes (main site templates)
- Admin section remains self-contained in /public/admin with its own /inc
- Updated all require/include paths across codebase
- Updated config/bootstrap.php, justfile, tests, docs
- All tests passing 

Structure now follows PHP best practices:
  /config      - Configuration files
  /database    - SQLite database + schema
  /docs        - Documentation (intact)
  /nginx       - Server config (intact)
  /public      - Web-accessible files (entry point)
    /admin     - Self-contained admin interface
    /assets    - CSS, fonts, icons
    /includes  - Main site templates (header/footer)
  /scripts     - Deployment scripts (intact)
  /src         - PHP source classes (Database, AdminAuth, RateLimit)
  /tests       - Test suites
This commit is contained in:
Théophile Gervreau-Mercier
2026-02-12 12:11:16 +01:00
parent 0b650cd3e7
commit 0e4921583e
26 changed files with 40 additions and 42 deletions

View File

@@ -130,7 +130,7 @@ just fixtures
### Create a New Page
1. Create `newpage.php` in root
2. Add `require_once __DIR__ . '/lib/Database.php';`
2. Add `require_once __DIR__ . '/src/Database.php';`
3. Include header: `include 'inc/header.php';`
4. Add your content
5. Include footer: `include 'inc/footer.php';`
@@ -138,7 +138,7 @@ just fixtures
Example:
```php
<?php
require_once __DIR__ . '/lib/Database.php';
require_once __DIR__ . '/src/Database.php';
include 'inc/header.php';
?>
@@ -154,7 +154,7 @@ include 'inc/header.php';
### Add a Database Function
1. Edit `lib/Database.php`
1. Edit `src/Database.php`
2. Add your method to the `Database` class
3. Write a test in `tests/Unit/DatabaseTest.php`
4. Run tests: `just test-unit`
@@ -215,7 +215,7 @@ See `tests/README.md` for complete testing guide.
**Quick example:**
```php
<?php
require_once __DIR__ . '/../../lib/Database.php';
require_once __DIR__ . '/../../src/Database.php';
echo "My Test\n";
echo "=======\n\n";
@@ -243,7 +243,7 @@ just deploy
This deploys:
- Public site (root PHP files)
- Admin panel (`admin/`)
- Shared libraries (`lib/`)
- Shared libraries (`src/`)
**Note:** `vendor/` is automatically excluded from deployment.