Questa guida ti accompagnerà passo dopo passo nell'installazione e nella configurazione di un nuovo progetto con SismaFramework.
Prima di iniziare, assicurati che il tuo ambiente di sviluppo soddisfi i seguenti requisiti:
mod_rewrite sia abilitato.L'approccio consigliato per includere SismaFramework nel tuo progetto è tramite Git submodule. Questo ti permette di mantenere il codice del framework separato dal tuo codice applicativo, facilitando gli aggiornamenti futuri.
SismaFramework offre due metodi di installazione:
Il metodo più rapido e sicuro per configurare un nuovo progetto è utilizzare il comando di installazione fornito dal framework.
mkdir il-mio-progetto
cd il-mio-progetto
git init
git submodule add https://github.com/valentinodelapa/SismaFramework.git
cd SismaFramework
composer install
cd ..
Questo comando installerà le dipendenze necessarie, inclusa la libreria PSR-3 per il logging standard.
Nota sul comando sisma
A partire dalla versione 11.5.0, lo script include lo shebang#!/usr/bin/env phped è affiancato da un wrappersisma.batper Windows. Questo consente di invocarlo direttamente come:
sisma install NomeDelProgetto
Se il comando non è nel PATH o i permessi di esecuzione non sono stati impostati, usa la forma esplicita:
php SismaFramework/Console/sisma install NomeDelProgetto
sisma install NomeDelProgetto
Questo comando creerà automaticamente:
Config/ con il file configFramework.php pre-configurato con il nome del progettoPublic/ con index.php configurato (path dell'autoloader aggiornati automaticamente)Cache/, Logs/ e filesystemMedia/ con permessi 0777 (lettura, scrittura, esecuzione per tutti)A partire dalla versione 11.1.0, il comando di installazione supporta la configurazione interattiva dei parametri del database. Se non vengono passati parametri da riga di comando, il sistema chiederà interattivamente se si desidera configurare il database:
Installing SismaFramework project: MyProject
Database Configuration (optional)
Press Enter to skip each field or use defaults.
Do you want to configure database settings? [y/N]: y
Database Host [127.0.0.1]: localhost
Database Port [3306]: 3306
Database Name []: myproject_db
Database Username []: root
Database Password: ********
Creating project structure...
Note sulla configurazione interattiva:
Se preferisci evitare la configurazione interattiva, puoi passare i parametri direttamente da riga di comando:
sisma install NomeDelProgetto \
--db-host=localhost \
--db-name=mio_database \
--db-user=root \
--db-pass=password \
--db-port=3306
Opzioni:
--force - Forza la sovrascrittura di file esistenti--skip-db - Salta completamente la configurazione database (nessuna richiesta interattiva)--db-host=HOST - Host del database (default: 127.0.0.1)--db-name=NAME - Nome del database--db-user=USER - Username del database--db-pass=PASS - Password del database--db-port=PORT - Porta del database (default: 3306)Esempi:
# Installazione con configurazione interattiva (default)
sisma install BlogPersonale
# Installazione senza configurazione database
sisma install BlogPersonale --skip-db
# Installazione con parametri da riga di comando
sisma install BlogPersonale \
--db-host=localhost \
--db-name=blog_db \
--db-user=root \
--db-pass=mypassword
Se esegui il comando install in una directory dove Config/configFramework.php esiste già, il comando fallirà per proteggere da sovrascritture accidentali. Per forzare la sovrascrittura, usa l'opzione --force:
sisma install MyProject --force
⚠️ Attenzione: L'opzione --force sovrascriverà tutti i file di configurazione esistenti. Usala solo se sei sicuro.
Le cartelle Cache/, Logs/ e filesystemMedia/ vengono create con permessi 0777 (rwxrwxrwx) per garantire che il web server possa scrivere log e file temporanei.
Se il tuo ambiente richiede permessi più restrittivi per motivi di sicurezza, puoi modificarli manualmente dopo l'installazione:
# Per ambienti multi-utente più sicuri
chmod 755 Cache Logs filesystemMedia
Crea un file .htaccess nella root del progetto:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ Public/index.php?url=$1 [QSA,L]
</IfModule>
La tua applicazione è ora pronta! ✅
Se preferisci configurare manualmente il progetto, segui questi passaggi.
mkdir il-mio-progetto
cd il-mio-progetto
git init
git submodule add https://github.com/valentinodelapa/SismaFramework.git
Questo creerà una cartella SismaFramework all'interno del tuo progetto.
cd SismaFramework
composer install
cd ..
Per garantire che gli aggiornamenti del framework non sovrascrivano le tue configurazioni, devi copiare le cartelle Config e Public dalla libreria alla root del tuo progetto.
cp -R SismaFramework/Config/ .
cp -R SismaFramework/Public/ .
Rinomina il file di configurazione del framework:
mv Config/config.php Config/configFramework.php
Crea le cartelle necessarie con i permessi appropriati:
mkdir Cache Logs filesystemMedia
chmod 777 Cache Logs filesystemMedia # 0777 = rwxrwxrwx (tutti possono leggere, scrivere, eseguire)
Nota: I permessi 0777 sono necessari affinché il web server possa scrivere log e file temporanei. Per ambienti più sicuri, considera l'uso di permessi più restrittivi (es. 0755) se il web server ha lo stesso proprietario delle cartelle.
La struttura della tua cartella di progetto dovrebbe ora essere simile a questa:
il-mio-progetto/
├── Cache/
├── Config/
│ └── configFramework.php
├── Logs/
├── Public/
│ └── index.php
├── filesystemMedia/
└── SismaFramework/
└── ... (codice del framework)
Ora devi modificare i file che hai appena copiato per farli puntare correttamente alla libreria nella sottocartella SismaFramework.
Public/index.php
Public/index.php e modifica i percorsi di inclusione per puntare alla sottocartella SismaFramework.
_Cerca queste righe:_
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'Config' . DIRECTORY_SEPARATOR . 'config.php';
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'Autoload' . DIRECTORY_SEPARATOR . 'autoload.php';
_E modificale in:_
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'SismaFramework' . DIRECTORY_SEPARATOR . 'Config' . DIRECTORY_SEPARATOR . 'config.php';
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'SismaFramework' . DIRECTORY_SEPARATOR . 'Autoload' . DIRECTORY_SEPARATOR . 'autoload.php';
Config/configFramework.php
Config/configFramework.php e imposta le costanti necessarie per il tuo ambiente.
const PROJECT = 'NomeDelTuoProgetto';
// ROOT_PATH viene calcolato automaticamente
const DATABASE_ADAPTER_TYPE = 'mysql'; // o 'mariadb'
const DATABASE_HOST = '127.0.0.1';
const DATABASE_NAME = 'nome_database';
const DATABASE_USERNAME = 'utente_db';
const DATABASE_PASSWORD = 'password_db';
const DATABASE_PORT = '3306';
const ENCRYPTION_PASSPHRASE = 'una-frase-segreta-molto-lunga-e-casuale';
Il framework utilizza un unico punto di accesso (Public/index.php). Tutte le richieste devono essere reindirizzate a questo file.
Esempio per Apache (.htaccess)
Crea un file .htaccess nella root del tuo progetto (il-mio-progetto/.htaccess) con il seguente contenuto:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ Public/index.php?url=$1 [QSA,L]
</IfModule>
A questo punto, la tua applicazione dovrebbe essere configurata e funzionante. Punta il tuo browser all'URL del progetto per verificare.
Dopo aver completato l'installazione:
Indice | Precedente: Introduzione al Framework | Successivo: Architettura a Moduli
Se hai trovato errori o vuoi suggerire miglioramenti, apri una issue su GitHub.
Report Issue Edit on GitHub