switch to php composer

This commit is contained in:
2026-07-22 12:55:08 +02:00
parent 151bc70775
commit 01b22f9c2d
16 changed files with 128 additions and 25 deletions
+5 -3
View File
@@ -14,7 +14,8 @@ In caso di conflitti di ID (ad esempio con input `hidden`), applicare il suffiss
2. **Namespace PSR-4**:
- Tutte le classi nella libreria comune usano il namespace `ElixForms\Common;`.
- Il caricamento è manuale tramite `require_once __DIR__ . '/../common/ElixFormsComponent.php';`.
- L'autoload PSR-4 è gestito da Composer tramite `vendor/autoload.php`.
- Gli entry point includono `require_once __DIR__ . '/../../vendor/autoload.php';`; le classi comuni non devono includersi manualmente tra loro.
3. **Rendering Server-Side**:
- I file PHP generano direttamente l'HTML server-side usando il design system Bootstrap Italia di UniPR.
@@ -24,12 +25,13 @@ In caso di conflitti di ID (ad esempio con input `hidden`), applicare il suffiss
- I checkbox inviano il proprio stato serializzato come stringa separata da virgole tramite un input hidden (gestito client-side da uno script JS automatico).
## Deploy e Server Locale
- **Deploy**: Le cartelle vengono caricate direttamente su web server Apache.
- **Dipendenze**: dalla root del repository eseguire `composer install --optimize-autoloader` oppure `composer-install.bat`.
- **Deploy**: Eseguire `composer install --no-dev --optimize-autoloader` e caricare sul server sia `php/` sia `vendor/`, mantenendole allo stesso livello.
- **Server locale**:
- **PHP CLI**: Avviare il server dalla cartella `php/` tramite `php -S localhost:8080` (le pagine saranno raggiungibili su `http://localhost:8080/<nome-pagina>/`).
- **Docker**: Dalla root del repository, eseguire:
```bash
docker run --rm -p 8080:8080 -v "${PWD}/php:/app" -w /app php:8.2-cli php -S 0.0.0.0:8080
docker run --rm -p 8080:8080 -v "${PWD}:/app" -w /app/php php:8.2-cli php -S 0.0.0.0:8080
```
## Skill PHP Correlate
-3
View File
@@ -4,9 +4,6 @@ declare(strict_types=1);
namespace ElixForms\Common;
require_once __DIR__ . '/QueryParamHelper.php';
require_once __DIR__ . '/ElixFormsElement.php';
/**
* Classe astratta base per le custom page PHP di elixForms.
* Equivalente PHP di ElixFormsComponentAbstract.tsx nel progetto React.
+2 -2
View File
@@ -6,13 +6,13 @@ services:
context: .
dockerfile: ../.docker/php/Dockerfile
container_name: elixforms-www
working_dir: /app
working_dir: /app/php
extra_hosts:
- "host.docker.internal:host-gateway"
ports:
- "8080:8000"
volumes:
- .:/app
- ..:/app
- ../.docker/php/xdebug.ini:/usr/local/etc/php/conf.d/xdebug.ini
#environment:
# XDEBUG_MODE: debug
@@ -2,8 +2,7 @@
declare(strict_types=1);
require_once __DIR__ . '/../common/ElixFormsComponent.php';
require_once __DIR__ . '/../common/QueryParamHelper.php';
require_once __DIR__ . '/../../vendor/autoload.php';
use ElixForms\Common\ElixFormsComponent;
use ElixForms\Common\QueryParamHelper;
@@ -4,7 +4,7 @@ declare(strict_types=1);
header('Content-Type: application/json; charset=utf-8');
require_once __DIR__ . '/../common/HttpClient.php';
require_once __DIR__ . '/../../vendor/autoload.php';
use ElixForms\Common\HttpClient;
+1 -1
View File
@@ -2,7 +2,7 @@
declare(strict_types=1);
require_once __DIR__ . '/../common/ElixFormsComponent.php';
require_once __DIR__ . '/../../vendor/autoload.php';
use ElixForms\Common\ElixFormsComponent;