Creazione ed esecuzione di un progetto Laravel su ServBay
Panoramica
ServBay è un potente ambiente locale per lo sviluppo web progettato appositamente per macOS. Include un'ampia gamma di pacchetti popolari tra cui PHP, Node.js, Python, Go, Java, diversi database (MySQL, PostgreSQL, MongoDB), servizi di cache (Redis, Memcached) e server web (Caddy, Nginx, Apache).
Questa guida ti accompagnerà passo dopo passo nella creazione, configurazione e avvio rapido di un progetto Laravel tramite ServBay. Approfitteremo dell'ambiente PHP integrato di ServBay, del gestore di pacchetti Composer e delle avanzate funzioni di gestione siti per semplificare il flusso di lavoro.
Che cos'è Laravel?
Laravel è un popolare framework PHP open source per le applicazioni web ideato da Taylor Otwell. Si basa sul pattern architetturale MVC (Model-View-Controller) e offre numerose funzionalità pronte all'uso, pensate per semplificare le attività comuni nello sviluppo web come autenticazione utenti, routing, gestione delle sessioni, caching e operazioni sui database. Laravel è celebre per la sua sintassi elegante, l'ampia gamma di funzionalità e una comunità molto attiva, rendendolo ideale per la creazione di applicazioni web moderne e manutenibili.
Principali vantaggi e caratteristiche di Laravel
- Sintassi elegante: codice pulito e espressivo, aumenta la produttività e la leggibilità.
- Eloquent ORM: un potente sistema ActiveRecord che rende semplice e intuitiva l'interazione con i database.
- Console Artisan: offre numerosi strumenti CLI per migrazioni, generazione di codice, test e altro ancora.
- Motore di template Blade: fornisce una sintassi pulita per costruire viste dinamiche.
- Ecosistema ricco: enorme quantità di pacchetti ufficiali e di terze parti facilmente integrabili tramite Composer.
- Forte supporto della comunità: comunità attiva con tantissime risorse, tutorial e soluzioni disponibili.
Vantaggi dell'uso di ServBay per sviluppare progetti Laravel
ServBay offre agli sviluppatori Laravel notevoli vantaggi:
- Ambiente integrato: ServBay include diversi PHP, Composer, database e servizi di cache preinstallati, eliminando la necessità di installazioni/configurazioni manuali.
- Gestione semplificata: tramite l'interfaccia grafica di ServBay puoi cambiare versione PHP, gestire siti, avviare/fermare servizi con pochi clic.
- Web server preconfigurato: per impostazione predefinita ServBay usa Caddy, ottimizzato per framework come Laravel, rendendo facile la configurazione.
- Supporto HTTPS: ServBay gestisce automaticamente i certificati SSL per domini
.local
, attivando HTTPS di default per un ambiente locale più sicuro e vicino alla produzione.
Creare un nuovo progetto Laravel
ServBay consiglia di tenere tutti i progetti web nella cartella /Applications/ServBay/www
per garantire ordine e una gestione centralizzata.
Verifica che Composer sia installato
Composer viene fornito già preinstallato con ServBay, quindi non occorrono ulteriori installazioni. Puoi verificare dal terminale:
bashcomposer --version
1Se visualizzi la versione, Composer è pronto all'uso.
Creazione di un nuovo progetto Laravel
Apri il terminale, vai nella directory consigliata ed utilizza Composer per generare il nuovo progetto. In questo esempio la directory sarà
servbay-laravel-app
:bashcd /Applications/ServBay/www # Crea la cartella del progetto mkdir servbay-laravel-app # Entra nella cartella cd servbay-laravel-app # Crea il progetto Laravel nella directory corrente composer create-project --prefer-dist laravel/laravel .
1
2
3
4
5
6
7Composer scaricherà e installerà Laravel e tutte le dipendenze.
Accedi alla directory del progetto
Assicurati di essere nella radice del nuovo progetto Laravel:
bashcd /Applications/ServBay/www/servbay-laravel-app
1
Configurazione iniziale
Generazione della application key
Laravel utilizza una chiave per la sicurezza delle sessioni utente e la cifratura dei dati. Da
/Applications/ServBay/www/servbay-laravel-app
esegui il comando Artisan per generarla:bashphp artisan key:generate
1Questo comando aggiornerà il file
.env
impostando il valore diAPP_KEY
.Configurazione ambiente (
.env
)Laravel usa il file
.env
per le variabili d'ambiente del progetto (come database, URL ecc). Apri il file nella radice del progetto e adatta le seguenti impostazioni:dotenvAPP_NAME=ServBay Laravel Demo APP_ENV=local APP_KEY=base64:... # Valore generato da php artisan key:generate APP_DEBUG=true APP_URL=https://servbay-laravel-test.local LOG_CHANNEL=stack # Esempio configurazione database (MySQL) DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=servbay_laravel_app # Nome del database desiderato DB_USERNAME=root # Utente predefinito di ServBay DB_PASSWORD=password # Password predefinita di ServBay # Esempio configurazione cache/queue (Redis) CACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # ServBay Redis senza password di default REDIS_PORT=6379 # Esempio configurazione cache/queue (Memcached) # CACHE_STORE=memcached # MEMCACHED_HOST=127.0.0.1 # MEMCACHED_PORT=11211
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26Nota: Potresti dover modificare le impostazioni
DB_*
,REDIS_*
oMEMCACHED_*
in base ai servizi effettivamente in uso. Username e password predefiniti sono visibili dal pannello ServBay.
Configurare il web server (aggiunta sito in ServBay)
Usa il gestore siti di ServBay per configurare il web server e far puntare il dominio alla cartella public
del progetto Laravel.
Apri il pannello di controllo ServBay
Avvia l'app ServBay e accedi al pannello di controllo.
Aggiungi un nuovo sito
Vai nella sezione "Siti" del pannello. Premi il pulsante Aggiungi (
+
o simile) per creare un nuovo sito.Inserisci le informazioni del sito
Compila i dati come segue:
- Nome:
My First Laravel Dev Site
(puoi scegliere un nome identificativo) - Dominio:
servbay-laravel-test.local
(il dominio che vuoi usare nel browser) - Tipo Sito:
PHP
- Versione PHP: scegli una versione compatibile, ad esempio
8.3
- Root del Sito:
/Applications/ServBay/www/servbay-laravel-app/public
(Importante: deve puntare alla sottocartellapublic
del progetto Laravel)
Per dettagli aggiuntivi, consulta la guida ufficiale ServBay su come aggiungere un sito (cerca il link alla versione inglese).
- Nome:
Salva e applica le modifiche
Salva la configurazione: ServBay aggiornerà automaticamente il server web (Caddy per default). Se richiesto, riavvia il web server come suggerito.
Verifica accesso di base
Ora il tuo progetto Laravel dovrebbe essere accessibile tramite il dominio scelto.
Apri il browser
Digita nel browser il dominio configurato, ad es.
https://servbay-laravel-test.local
.Visualizza il risultato
Se tutto è configurato correttamente, apparirà la pagina di benvenuto di Laravel.
Aggiungere un semplice esempio di codice
Per una verifica più immediata, puoi aggiungere una route semplice in routes/web.php
che mostri "Hello ServBay!".
Trova il file routes/web.php
del progetto ed aggiungi o modifica così:
php
<?php
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Qui puoi registrare le rotte web per la tua applicazione.
| Le rotte vengono caricate dal RouteServiceProvider nel gruppo di middleware "web".
| Inizia a creare qualcosa di straordinario!
|
*/
Route::get('/', function () {
return 'Hello ServBay!'; // Modifica o aggiungi questa riga
});
// ... altre rotte
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Salva il file e visita nuovamente https://servbay-laravel-test.local
. Ora dovresti vedere "Hello ServBay!" nel tuo browser.
Esempio di integrazione database
Laravel offre un potente livello di astrazione database e un ORM (Eloquent) flessibile per lavorare con molteplici database. ServBay ha installati MySQL, PostgreSQL, MongoDB, Redis, Memcached ecc. per i tuoi test locali.
Esempio NoSQL
ServBay integra Redis e Memcached di default, con estensioni PHP già preinstallate.
Esempio Memcached
Configura
.env
Inserisci i parametri di connessione Memcached se necessario:
dotenvCACHE_STORE=memcached MEMCACHED_HOST=127.0.0.1 MEMCACHED_PORT=11211 # Porta predisposta di ServBay
1
2
3Usa Memcached
Puoi interagire con Memcached tramite la facade di cache di Laravel:
Nel file
routes/web.php
aggiungi questa route d'esempio:phpuse Illuminate\Support\Facades\Cache; Route::get('/memcached-test', function () { // Salva un valore in cache valido 10 minuti (600 secondi) Cache::put('servbay_memcached_key', 'Hello from Memcached on ServBay!', 600); // Recupera il valore dalla cache $value = Cache::get('servbay_memcached_key'); if ($value) { return "Dati Memcached: " . $value; } else { return "I dati Memcached non esistono o sono scaduti."; } });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Visita
https://servbay-laravel-test.local/memcached-test
per testare.
Esempio Redis
Configura
.env
Imposta i parametri di connessione Redis:
dotenvCACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # Redis senza password di default in ServBay REDIS_PORT=6379 # Porta default Redis ServBay
1
2
3
4Nota: Se configuri sia Memcached che Redis, assicurati che solo uno sia attivo tramite
CACHE_STORE
nel file.env
(commenta l'altro).Usa Redis
Puoi interagire con Redis attraverso la facade Redis o Cache di Laravel:
Nel file
routes/web.php
aggiungi questa route:phpuse Illuminate\Support\Facades\Redis; // Oppure usa la Cache se CACHE_STORE=redis // use Illuminate\Support\Facades\Cache; Route::get('/redis-test', function () { // Con Redis facade Redis::set('servbay_redis_key', 'Hello from Redis on ServBay!'); $value_redis = Redis::get('servbay_redis_key'); // Oppure con Cache facade (se CACHE_STORE=redis) // Cache::put('servbay_redis_key', 'Hello from Redis on ServBay!', 600); // $value_cache = Cache::get('servbay_redis_key'); return "Dati Redis: " . $value_redis; });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Visita
https://servbay-laravel-test.local/redis-test
per testare.
Esempio relazionale (MySQL & PostgreSQL)
ServBay include i server MySQL e PostgreSQL. L'ORM Eloquent di Laravel si connette facilmente a entrambi.
Per prima cosa crea il database per il progetto. Puoi usare strumenti come phpMyAdmin, Adminer, pgAdmin (disponibili dal pannello ServBay) o il terminale per creare ad esempio servbay_laravel_app
.
Ora, crea la struttura delle tabelle usando le migration di Laravel.
Crea un file di migration
Da terminale, nella cartella del progetto:
bashphp artisan make:migration create_accounts_table --create=accounts
1Verrà creato un nuovo file nelle migration in
database/migrations
.Modifica la migration
Modifica il file appena creato (es.
YYYY_MM_DD_HHMMSS_create_accounts_table.php
), aggiornando il metodoup
come segue:php<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Esegue la migration. */ public function up(): void { Schema::create('accounts', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $table->timestamps(); // Aggiunge colonne created_at e updated_at }); } /** * Annulla la migration. */ public function down(): void { Schema::dropIfExists('accounts'); } };
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29Salva il file.
Esegui la migration
Da terminale, sempre nella root del progetto:
bashphp artisan migrate
1Se la configurazione è corretta e il database esiste, verranno create la tabella
accounts
e quelle predefinite di Laravel comeusers
,password_reset_tokens
,failed_jobs
ecc.
Esempio MySQL
Configura
.env
per MySQLAssicurati che le impostazioni puntino a MySQL:
dotenvDB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 # Porta default MySQL ServBay DB_DATABASE=servbay_laravel_app DB_USERNAME=root DB_PASSWORD=password # Password predefinita MySQL ServBay
1
2
3
4
5
6Scrivi dati di esempio
Aggiungi una route per inserire un account in
routes/web.php
:phpuse Illuminate\Support\Facades\DB; Route::get('/mysql-add-account', function () { DB::table('accounts')->insert([ 'name' => 'ServBay Demo User', 'email' => '[email protected]', 'created_at' => now(), 'updated_at' => now(), ]); return 'Account aggiunto su MySQL!'; });
1
2
3
4
5
6
7
8
9
10
11Visita
https://servbay-laravel-test.local/mysql-add-account
per inserire un record.Recupera dati di esempio
Aggiungi una route per leggere gli account:
phpuse App\Models\Account; // Se hai creato il modello Account // Oppure direttamente tramite DB facade Route::get('/mysql-accounts', function () { // Con DB facade $accounts = DB::table('accounts')->get(); // Oppure con Eloquent ORM (se il modello esiste) // $accounts = Account::all(); return $accounts; });
1
2
3
4
5
6
7
8
9
10
11
12Vai su
https://servbay-laravel-test.local/mysql-accounts
per visualizzare i dati.
Esempio PostgreSQL
Configura
.env
per PostgreSQLPer usare PostgreSQL, imposta così il file
.env
:dotenvDB_CONNECTION=pgsql DB_HOST=127.0.0.1 DB_PORT=5432 # Porta default PostgreSQL ServBay DB_DATABASE=servbay_laravel_app DB_USERNAME=root # Utente predefinito PostgreSQL ServBay DB_PASSWORD=password # Password predefinita PostgreSQL ServBay
1
2
3
4
5
6Nota: Dopo il cambio del database potresti dover rilanciare
php artisan migrate:refresh
ophp artisan migrate
per ricreare le tabelle.Scrivi dati di esempio (PostgreSQL)
Inserisci una route per aggiungere un record:
phpuse Illuminate\Support\Facades\DB; Route::get('/pgsql-add-account', function () { DB::table('accounts')->insert([ 'name' => 'ServBay PG Demo User', 'email' => '[email protected]', 'created_at' => now(), 'updated_at' => now(), ]); return 'Account aggiunto su PostgreSQL!'; });
1
2
3
4
5
6
7
8
9
10
11Visita
https://servbay-laravel-test.local/pgsql-add-account
per inserire dati.Recupera dati di esempio (PostgreSQL)
Aggiungi una route per la lettura:
phpuse Illuminate\Support\Facades\DB; Route::get('/pgsql-accounts', function () { $accounts = DB::table('accounts')->get(); return $accounts; });
1
2
3
4
5
6Vai su
https://servbay-laravel-test.local/pgsql-accounts
per vedere i risultati.
Conclusione
Con ServBay puoi configurare in modo semplice e veloce un ambiente di sviluppo locale su macOS per la creazione e l'esecuzione di progetti Laravel. Grazie all’integrazione di PHP, Composer, server web Caddy e molteplici database e servizi di cache, l’intera procedura risulta notevolmente semplificata. In pochi passaggi potrai avviare un nuovo progetto, configurare il web server e iniziare lo sviluppo, integrando e testando comodamente database e cache. ServBay si impegna a offrire ai developer un'esperienza di sviluppo locale efficiente e senza complicazioni.
Se dovessi incontrare difficoltà o hai bisogno di approfondimenti, consulta la documentazione ufficiale ServBay o cerca supporto dalla community.