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
+1 -1
View File
@@ -32,7 +32,7 @@ namespace ElixForms\Common;
Le pagine importano con:
```php
require_once __DIR__ . '/../common/ElixFormsComponent.php';
require_once __DIR__ . '/../../vendor/autoload.php';
use ElixForms\Common\ElixFormsComponent;
```
@@ -20,6 +20,8 @@ Questa struttura è l'equivalente PHP del monorepo React in `react/`.
```
elixforms-custom-pages/
├── composer.json ← Configurazione Composer e autoload PSR-4
├── vendor/ ← Autoloader generato (non versionato)
├── react/ ← Custom pages React (esistente)
└── php/ ← Custom pages PHP
├── AGENTS.md ← Regole dell'agente PHP
@@ -35,7 +37,7 @@ elixforms-custom-pages/
Ogni pagina (es. `scelta-carriera/`) è un file PHP autonomo che:
1. **Include la libreria `common/`** tramite `require_once`
1. **Carica l'autoloader Composer** tramite `vendor/autoload.php`
2. **Definisce una classe** che estende `ElixFormsComponent`
3. **Sovrascrive `createCustomFormFields()`** per i campi specifici
4. **Istanzia e renderizza** la pagina con `echo $page->render()`
@@ -50,13 +52,10 @@ Il progetto usa **namespace PSR-4**:
namespace ElixForms\Common; // Per le classi in common/
```
L'autoloading è gestito manualmente con `require_once` (non Composer):
L'autoloading PSR-4 è gestito da Composer:
```php
require_once __DIR__ . '/../common/ElixFormsComponent.php';
// ElixFormsComponent.php include internamente:
// - QueryParamHelper.php
// - ElixFormsElement.php
require_once __DIR__ . '/../../vendor/autoload.php';
```
## Requisiti PHP
@@ -108,7 +107,7 @@ Identica alla versione React:
| **Linguaggio** | TypeScript/JSX | PHP 8.0+ |
| **Rendering** | Client-side | Server-side |
| **Build tool** | Vite (single bundle JS) | Nessuno (file serviti direttamente) |
| **Dipendenze** | npm (React, Vite, plugin) | Nessuna (PHP built-in) |
| **Dipendenze** | npm (React, Vite, plugin) | Composer (autoload PSR-4) |
| **CSS loading** | `@import url()` + CSS injection plugin | `<link>` tags |
| **State management** | React state (`this.setState`) | Stateless (`$_GET`) |
| **Deploy** | Upload del bundle `.js` | Upload dei file `.php` |
@@ -116,9 +115,10 @@ Identica alla versione React:
## Deploy su Apache
1. Caricare la cartella `php/` sul server Apache
2. Configurazione Apache minima:
1. Eseguire `composer install --no-dev --optimize-autoloader` dalla root del repository
2. Caricare sul server le cartelle `php/` e `vendor/`, mantenendole allo stesso livello
3. Configurazione Apache minima:
- `mod_php` o `php-fpm` abilitato
- `DirectoryIndex index.php` (default Apache)
3. La pagina è accessibile via URL: `https://server/php/nome-pagina/`
4. elixForms reindirizza l'utente alla pagina passando i parametri via query string
4. La pagina è accessibile via URL: `https://server/php/nome-pagina/`
5. elixForms reindirizza l'utente alla pagina passando i parametri via query string