Creare e avviare un progetto Yii 2
Cosa è Yii 2?
Yii 2 è un framework PHP ad alte prestazioni adatto per lo sviluppo di applicazioni Web moderne. Segue il modello di progettazione MVC (Model-View-Controller) e offre una ricca gamma di funzionalità e strumenti che permettono agli sviluppatori di costruire rapidamente applicazioni Web di alta qualità. Yii 2 è efficiente, flessibile ed estensibile, e rappresenta una scelta popolare tra molti sviluppatori.
Caratteristiche principali e vantaggi di Yii 2
- Alte prestazioni: Yii 2 è un framework ad alte prestazioni in grado di gestire richieste ad alta concorrenza.
- Modularità: Offre moduli e plugin ricchi di funzionalità, facilitando l'espansione e la personalizzazione.
- Sicurezza: Incorpora varie funzionalità di sicurezza integrate come la validazione dell'input, il filtraggio dell'output e la protezione CSRF.
- Facilità d'uso: Fornisce un'API semplice e documentazione esaustiva, permettendo agli sviluppatori di iniziare rapidamente.
- Supporto della comunità robusto: Ha una comunità di sviluppatori attiva e una vasta gamma di estensioni di terze parti.
Yii 2 aiuta gli sviluppatori a costruire rapidamente applicazioni Web performanti e di alta qualità, adatte a progetti di qualsiasi dimensione.
Creare e avviare un progetto Yii 2 utilizzando ServBay
In questo articolo utilizzeremo l'ambiente PHP fornito da ServBay per creare e avviare un progetto Yii 2. Useremo la funzione "host" di ServBay per configurare il server Web e accedere al progetto con una semplice configurazione.
Nota: se eri un utente di NGINX o Apache
ServBay usa Caddy come server Web predefinito. Per gli utenti che migrano da NGINX e Apache a ServBay, ci sono alcuni punti chiave da considerare:
Configurazione di Caddy
ServBay ha Caddy integrato e ottimizzato di default. Gli sviluppatori possono gestire il sito tramite la funzione "host" di ServBay senza modificare manualmente il file di configurazione di Caddy.
Regole di riscrittura e .htaccess
In NGINX e Apache, gli sviluppatori spesso devono scrivere regole di riscrittura e file .htaccess per gestire la riscrittura degli URL e altre configurazioni. Tuttavia, le regole di Caddy sono preconfigurate in ServBay, quindi gli sviluppatori non devono scrivere queste regole a meno che non abbiano esigenze particolari.
Per saperne di più
Ulteriori informazioni possono essere trovate su Rewrite e htaccess, Come migrare un sito Apache a ServBay, Come migrare un sito NGINX a ServBay.
Creare un progetto Yii 2
TIP
ServBay consiglia agli sviluppatori di posizionare il sito nel directory /Applications/ServBay/www
per una gestione più facile.
Installare Composer
ServBay include Composer preinstallato, quindi non è necessario installarlo separatamente.
Creare un progetto Yii 2
Usare Composer per creare un nuovo progetto basato sul template di applicazione base di Yii 2:
bashcd /Applications/ServBay/www mkdir servbay-yii2-app cd servbay-yii2-app composer create-project --prefer-dist yiisoft/yii2-app-basic .
1
2
3
4Entrare nel directory del progetto
Entrare nel nuovo directory del progetto Yii 2 creato:
bashcd /Applications/ServBay/www/servbay-yii2-app
1
Configurazione iniziale
Configurare la connessione al database
Configurare le informazioni per la connessione al database nel file
config/db.php
:phpreturn [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=127.0.0.1;dbname=servbay_yii2_app', 'username' => 'root', 'password' => 'password', 'charset' => 'utf8', ];
1
2
3
4
5
6
7Configurare cache e componenti Redis
Aggiungere la configurazione per la cache e i componenti Redis nel file
config/web.php
:php'components' => [ 'cache' => [ 'class' => 'yii\caching\MemCache', 'servers' => [ [ 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 100, ], ], ], 'redis' => [ 'class' => 'yii\redis\Connection', 'hostname' => '127.0.0.1', 'port' => 6379, 'database' => 0, ], // ... ],
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Configurare il server Web
Usare la funzione "host" di ServBay per accedere al progetto Yii 2 tramite il server Web. Nei settaggi "host" di ServBay, aggiungere un nuovo host:
- Nome:
My First Yii 2 Dev Site
- Dominio:
servbay-yii2-test.local
- Tipo di sito:
PHP
- Versione PHP: selezionare
8.3
- Directory radice del sito:
/Applications/ServBay/www/servbay-yii2-app/web
Per i dettagli sui settaggi, consultare Aggiungi primo sito.
Aggiungere codice di esempio
Aggiungere il seguente codice nel file controllers/SiteController.php
:
namespace app\controllers;
use Yii;
use yii\web\Controller;
use yii\web\Response;
class SiteController extends Controller
{
public function actionIndex()
{
return $this->render('index');
}
public function actionMemcached()
{
$cache = Yii::$app->cache;
$cache->set('key', 'Hello Memcached!', 60);
$value = $cache->get('key');
return $this->asText($value);
}
public function actionRedis()
{
$redis = Yii::$app->redis;
$redis->set('key', 'Hello Redis!');
$value = $redis->get('key');
return $this->asText($value);
}
public function actionMysqlAdd()
{
Yii::$app->db->createCommand()->insert('users', [
'name' => 'ServBay',
'email' => '[email protected]',
])->execute();
return $this->asText('User added');
}
public function actionMysql()
{
$users = Yii::$app->db->createCommand('SELECT * FROM users')->queryAll();
return $this->asJson($users);
}
}
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Aggiungere il seguente codice nel file views/site/index.php
:
<?php
/* @var $this yii\web\View */
$this->title = 'My Yii2 Application';
?>
<div class="site-index">
<div class="jumbotron">
<h1>Congratulations!</h1>
<p class="lead">You have successfully created your Yii2 application.</p>
</div>
</div>
2
3
4
5
6
7
8
9
10
Accedere al sito
Aprire il browser e visitare l'URL seguente:
https://servbay-yii2-test.local
: Vedrete la pagina di benvenuto predefinita di Yii 2.
Esempio di database NoSQL
Esempio di Memcached
Installare l'estensione Memcached
In ServBay, l'estensione Memcached è preinstallata, quindi non è necessario installarla separatamente.
Configurare Memcached
Configurare le informazioni per la connessione a Memcached nel file
config/web.php
:php'components' => [ 'cache' => [ 'class' => 'yii\caching\MemCache', 'servers' => [ [ 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 100, ], ], ], // ... ],
1
2
3
4
5
6
7
8
9
10
11
12
13Usare Memcached
Utilizzare la cache nel controller:
phppublic function actionMemcached() { $cache = Yii::$app->cache; $cache->set('key', 'Hello Memcached!', 60); $value = $cache->get('key'); return $this->asText($value); }
1
2
3
4
5
6
7
Esempio di Redis
Installare l'estensione Redis
In ServBay, l'estensione Redis è preinstallata, quindi non è necessario installarla separatamente.
Configurare Redis
Configurare le informazioni per la connessione a Redis nel file
config/web.php
:php'components' => [ 'redis' => [ 'class' => 'yii\redis\Connection', 'hostname' => '127.0.0.1', 'port' => 6379, 'database' => 0, ], // ... ],
1
2
3
4
5
6
7
8
9Usare Redis
Utilizzare Redis nel controller:
phppublic function actionRedis() { $redis = Yii::$app->redis; $redis->set('key', 'Hello Redis!'); $value = $redis->get('key'); return $this->asText($value); }
1
2
3
4
5
6
7
Esempio di database relazionale
Creare la struttura del database e i file di migrazione
Creare un file di migrazione
Usare lo strumento Gii di Yii 2 per creare un file di migrazione:
bashphp yii migrate/create create_users_table
1Modificare il file di migrazione
Trovare il nuovo file di migrazione creato nella directory
migrations
e modificarlo per definire la struttura della tabella del database:phppublic function up() { $this->createTable('users', [ 'id' => $this->primaryKey(), 'name' => $this->string()->notNull(), 'email' => $this->string()->notNull()->unique(), 'created_at' => $this->timestamp()->defaultExpression('CURRENT_TIMESTAMP'), 'updated_at' => $this->timestamp()->defaultExpression('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'), ]); }
1
2
3
4
5
6
7
8
9
10Eseguire la migrazione
Usare il comando di migrazione di Yii 2 per eseguire la migrazione e creare la tabella del database:
bashphp yii migrate
1
Esempio di MySQL
Configurare MySQL
Configurare le informazioni per la connessione a MySQL nel file
config/db.php
:phpreturn [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=127.0.0.1;dbname=servbay_yii2_app', 'username' => 'root', 'password' => 'password', 'charset' => 'utf8', ];
1
2
3
4
5
6
7Inserire dati utente
Inserire dati utente nel controller:
phppublic function actionMysqlAdd() { Yii::$app->db->createCommand()->insert('users', [ 'name' => 'ServBay', 'email' => '[email protected]', ])->execute(); return $this->asText('User added'); }
1
2
3
4
5
6
7
8Usare MySQL
Richiamare dati dal database nel controller:
phppublic function actionMysql() { $users = Yii::$app->db->createCommand('SELECT * FROM users')->queryAll(); return $this->asJson($users); }
1
2
3
4
5
Esempio di PostgreSQL
Configurare PostgreSQL
Configurare le informazioni per la connessione a PostgreSQL nel file
config/db.php
:phpreturn [ 'class' => 'yii\db\Connection', 'dsn' => 'pgsql:host=127.0.0.1;dbname=servbay_yii2_app', 'username' => 'root', 'password' => 'password', 'charset' => 'utf8', ];
1
2
3
4
5
6
7Inserire dati utente
Inserire dati utente nel controller:
phppublic function actionPgsqlAdd() { Yii::$app->db->createCommand()->insert('users', [ 'name' => 'ServBay', 'email' => '[email protected]', ])->execute(); return $this->asText('User added'); }
1
2
3
4
5
6
7
8Usare PostgreSQL
Richiamare dati dal database nel controller:
phppublic function actionPgsql() { $users = Yii::$app->db->createCommand('SELECT * FROM users')->queryAll(); return $this->asJson($users); }
1
2
3
4
5
Seguendo questi passaggi, hai creato e avviato con successo un progetto Yii 2 e hai utilizzato le funzionalità di ServBay per gestire e accedere al tuo progetto, collegandoti a diversi database e richiamando i dati. Speriamo che questo articolo ti aiuti a iniziare rapidamente con Yii 2 e ad applicarlo ai tuoi progetti.