Creare ed eseguire un progetto ThinkPHP 8
Cos'è ThinkPHP?
ThinkPHP è un framework PHP web open-source creato da sviluppatori cinesi. Si propone di fornire agli sviluppatori un set di strumenti semplice ed efficiente per costruire applicazioni web moderne. ThinkPHP offre una ricca serie di funzionalità come routing, sessioni, cache, autenticazioni, semplificando i compiti comuni nello sviluppo web.
Caratteristiche e vantaggi principali di ThinkPHP
- Semplicità ed Efficienza: La sintassi di ThinkPHP è semplice ed efficiente, rendendo il codice più leggibile e mantenibile.
- Ampia gamma di funzionalità: Include routing, autenticazioni, gestione delle sessioni e cache, semplificando notevolmente il lavoro di sviluppo.
- ORM potenziato: ThinkPHP offre ottime funzionalità per la manipolazione dei database.
- Design modulare: Tramite il gestore di pacchetti Composer, è facile integrare librerie e estensioni di terze parti.
- Forte supporto della comunità: Ha una vasta comunità di sviluppatori e un ricco ecosistema.
ThinkPHP può aiutare gli sviluppatori a creare rapidamente applicazioni web e API di alta qualità, adatto a progetti di varie dimensioni, dalle piccole applicazioni ai sistemi enterprise di grandi dimensioni.
Creare ed eseguire un progetto ThinkPHP 8 con ServBay
In questo articolo utilizzeremo l'ambiente PHP fornito da ServBay per creare ed eseguire un progetto ThinkPHP 8. Utilizzeremo la funzionalità "Host" di ServBay per configurare il server web e accedere al progetto tramite una configurazione semplice.
Nota: se sei un utente di NGINX o Apache
ServBay utilizza di default Caddy come server web. Per gli utenti che migrano da NGINX e Apache a ServBay, ci sono alcuni punti chiave da considerare:
Configurazione di Caddy
ServBay ha già incluso Caddy e la configurazione predefinita è ottimizzata e testata. Gli sviluppatori possono gestire i siti tramite la funzionalità "Host" di ServBay senza dover modificare manualmente i file di configurazione di Caddy.
Regole di riscrittura e .htaccess
Con NGINX e Apache, gli sviluppatori devono solitamente scrivere manualmente le regole di riscrittura e i file .htaccess per gestire la riscrittura degli URL e altre configurazioni. Tuttavia, le regole di Caddy sono preconfigurate in ServBay, quindi, a meno che non ci siano esigenze particolari, non è necessario scrivere queste regole.
Per ulteriori informazioni
Maggiori informazioni sono disponibili su Rewrite e htaccess, Come migrare siti Apache a ServBay, Come migrare siti NGINX a ServBay.
Creare un progetto ThinkPHP
TIP
ServBay consiglia di inserire i siti web nella directory /Applications/ServBay/www
per una gestione più agevole.
Installare Composer
ServBay viene fornito con Composer preinstallato, quindi non è necessario installarlo separatamente.
Creare un progetto ThinkPHP
Utilizzare Composer per creare un nuovo progetto ThinkPHP:
bashcd /Applications/ServBay/www composer create-project topthink/think servbay-thinkphp-app
1
2Accedere alla directory del progetto
Accedere alla directory del nuovo progetto ThinkPHP appena creato:
bashcd /Applications/ServBay/www/servbay-thinkphp-app
1
Configurazione iniziale
Configurare le variabili di ambiente
Configurare le informazioni di connessione al database e altre variabili di ambiente nel file
config/database.php
. Assicurarsi che le seguenti configurazioni siano impostate correttamente:php'type' => 'mysql', 'hostname' => '127.0.0.1', 'database' => 'servbay_thinkphp_app', 'username' => 'root', 'password' => 'password', 'hostport' => '3306',
1
2
3
4
5
6
Configurare il server web
DANGER
Le regole di riscrittura di ThinkPHP sono leggermente diverse dalle regole generali, quindi è necessario personalizzare.
Utilizzare la funzionalità "Host" di ServBay per accedere al progetto ThinkPHP tramite il server web. Nelle impostazioni "Host" di ServBay, aggiungere un nuovo host:
- Nome:
My First ThinkPHP Dev Site
- Dominio:
servbay-thinkphp-test.local
Fare clic su "Configurazione personalizzata" nell'angolo in alto a destra e inserire quanto segue
encode zstd gzip
import set-log servbay-thinkphp-test.local
tls internal
@canonicalPath {
file {
try_files {path}/index.php
}
not path */
}
redir @canonicalPath {path}/ 308
root * /Applications/ServBay/www/servbay-thinkphp-app/public
route {
try_files {path} {path}/ /index.php?s={path}&{query}
php_fastcgi unix//Applications/ServBay/tmp/php-cgi-8.3.sock
}
file_server
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
TIP
Se è necessaria una versione diversa di PHP, modificare php-cgi-8.3.sock
con la versione di PHP corrispondente. Assicurarsi inoltre di modificare set-log
con il nome di dominio del sito.
Per una guida dettagliata, consultare Aggiungere il primo sito.
Aggiungere codice di esempio
Aggiungere il seguente codice nel file route/app.php
per visualizzare "Hello ServBay!":
Route::get('servbay', function () {
return 'Hello ServBay!';
});
2
3
Accedere al sito
Aprire un browser e visitare https://servbay-thinkphp-test.local/servbay
, dove vedrete "Hello ServBay!" sulla pagina.
Esempio con database NoSQL
Esempio di Memcached
Installare l'estensione Memcached
In ServBay, l'estensione Memcached è già preinstallata, quindi non è necessario installarla.
Configurare Memcached
Configurare le informazioni di connessione Memcached nel file
config/cache.php
:php'type' => 'memcached', 'host' => '127.0.0.1',
1
2Utilizzare Memcached
Utilizzare la cache nel controller:
phpuse think\facade\Cache; Route::get('/memcached', function () { Cache::set('key', 'value', 600); return Cache::get('key'); });
1
2
3
4
5
6
Esempio di Redis
Installare l'estensione Redis
In ServBay, l'estensione Redis è già preinstallata, quindi non è necessario installarla.
Configurare Redis
Configurare le informazioni di connessione Redis nel file
config/cache.php
:php'type' => 'redis', 'host' => '127.0.0.1', 'port' => 6379, 'password' => '',
1
2
3
4Utilizzare Redis
Utilizzare la cache nel controller:
phpuse think\facade\Cache; Route::get('/redis', function () { Cache::set('key', 'value'); return Cache::get('key'); });
1
2
3
4
5
6
Esempio con database relazionali
Creare la struttura del database e i file di migrazione
Installare lo strumento di migrazione del database
Prima di utilizzare lo strumento di migrazione del database di ThinkPHP, è necessario installarlo:
bashcomposer require topthink/think-migration
1Creare file di migrazione
Utilizzare lo strumento da riga di comando di ThinkPHP per creare un file di migrazione:
bashphp think migrate:create CreateUserTable
1Modificare il file di migrazione
Trovare il file di migrazione appena creato nella directory
database/migrations
e modificarlo per definire la struttura della tabella del database:phppublic function up() { Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('email')->unique(); $table->timestamps(); }); }
1
2
3
4
5
6
7
8
9Eseguire la migrazione
Utilizzare lo strumento da riga di comando di ThinkPHP per eseguire la migrazione e creare la tabella del database:
bashphp think migrate:run
1
Esempio di MySQL
Configurare MySQL
Configurare le informazioni di connessione MySQL nel file
config/database.php
:php'type' => 'mysql', 'hostname' => '127.0.0.1', 'database' => 'servbay_thinkphp_app', 'username' => 'root', 'password' => 'password', 'hostport' => '3306',
1
2
3
4
5
6Inserire dati utente
Inserire dati utenti nel controller:
phpuse think\Db; Route::get('/mysql-add', function () { Db::table('users')->insert([ 'name' => 'ServBay', 'email' => '[email protected]', ]); return 'User added'; });
1
2
3
4
5
6
7
8
9Utilizzare MySQL
Utilizzare il database nel controller:
phpuse think\Db; Route::get('/mysql', function () { $users = Db::table('users')->select(); return json($users); });
1
2
3
4
5
6
Esempio di PostgreSQL
Configurare PostgreSQL
Configurare le informazioni di connessione PostgreSQL nel file
config/database.php
:php'type' => 'pgsql', 'hostname' => '127.0.0.1', 'database' => 'servbay_thinkphp_app', 'username' => 'root', 'password' => 'password', 'hostport' => '5432',
1
2
3
4
5
6Inserire dati utente
Inserire dati utenti nel controller:
phpuse think\Db; Route::get('/pgsql-add', function () { Db::table('users')->insert([ 'name' => 'ServBay', 'email' => '[email protected]', ]); return 'User added'; });
1
2
3
4
5
6
7
8
9Utilizzare PostgreSQL
Utilizzare il database nel controller:
phpuse think\Db; Route::get('/pgsql', function () { $users = Db::table('users')->select(); return json($users); });
1
2
3
4
5
6
Seguendo questi passaggi, hai creato e avviato con successo un progetto ThinkPHP 8, utilizzando le funzionalità fornite da ServBay per gestire e accedere al tuo progetto, collegandolo a vari database e chiamando i dati.