switch to php composer
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user