Creare e eseguire un progetto CodeIgniter
Cos'è CodeIgniter?
CodeIgniter è un framework PHP leggero, adatto per lo sviluppo rapido ed efficiente di applicazioni web. Segue il modello di progettazione MVC (Model-View-Controller) e offre numerose funzionalità e strumenti che consentono agli sviluppatori di creare rapidamente applicazioni web di alta qualità. CodeIgniter è noto per la sua semplicità, alte prestazioni e facilità di apprendimento, diventando il framework preferito da molti sviluppatori.
Principali caratteristiche e vantaggi di CodeIgniter
- Leggerezza: Il sistema core di CodeIgniter è molto piccolo, contiene solo i componenti necessari, il che lo rende molto veloce.
- Alte prestazioni: CodeIgniter è noto per le sue prestazioni elevate e velocità, capace di gestire richieste ad alta concorrenza.
- Facilità di apprendimento: Offre un'API semplice da usare e una documentazione ricca, permettendo agli sviluppatori di apprendere rapidamente.
- Flessibilità: Consente agli sviluppatori di scegliere e utilizzare liberamente librerie e plugin di terze parti, facilitando l'espansione e la personalizzazione delle funzionalità.
- Supporto della comunità: Ha una comunità di sviluppatori attiva e molti estensioni di terze parti disponibili.
CodeIgniter può aiutare gli sviluppatori a creare rapidamente applicazioni web ad alte prestazioni e di alta qualità, adatte a progetti di qualsiasi dimensione.
Creare ed eseguire un progetto CodeIgniter con ServBay
In questo articolo, utilizzeremo l'ambiente PHP fornito da ServBay per creare ed eseguire un progetto CodeIgniter. Utilizzeremo la funzione 'hosting' di ServBay per configurare il server web e rendere accessibile il progetto con una configurazione semplice.
Nota: se eri un utente di NGINX o Apache
ServBay utilizza Caddy come server web predefinito. Per gli utenti che stanno migrando da NGINX o Apache a ServBay, ci sono alcuni punti chiave da tenere a mente:
Configurazione di Caddy
ServBay include Caddy integrato, con una configurazione predefinita ottimizzata e testata. Gli sviluppatori possono gestire i loro siti tramite la funzione 'hosting' di ServBay senza dover modificare manualmente i file di configurazione di Caddy.
Regole di riscrittura e file .htaccess
In NGINX e Apache, gli sviluppatori solitamente scrivono regole di riscrittura e file .htaccess per gestire la riscrittura degli URL e altre configurazioni. Tuttavia, la configurazione di Caddy di ServBay include già queste regole, quindi gli sviluppatori non devono scriverle manualmente a meno che non abbiano esigenze specifiche.
Ulteriori informazioni
Per ulteriori dettagli, consulta Rewrite e htaccess, Come migrare un sito Apache a ServBay, Come migrare un sito NGINX a ServBay.
Creare un progetto CodeIgniter
TIP
ServBay consiglia agli sviluppatori di posizionare i siti web nella directory /Applications/ServBay/www
per una gestione più semplice.
Installare Composer
ServBay viene fornito con Composer preinstallato, quindi non è necessario installarlo separatamente.
Creare un progetto CodeIgniter
Utilizzare Composer per creare un nuovo progetto CodeIgniter:
bashcd /Applications/ServBay/www mkdir servbay-codeigniter-app cd servbay-codeigniter-app composer create-project codeigniter4/appstarter .
1
2
3
4Accedere alla directory del progetto
Accedere alla directory del nuovo progetto CodeIgniter:
bashcd /Applications/ServBay/www/servbay-codeigniter-app
1
Configurazione iniziale
Configurare la connessione al database
Configurare le informazioni di connessione al database nel file
app/Config/Database.php
:phppublic $default = [ 'DSN' => '', 'hostname' => '127.0.0.1', 'username' => 'root', 'password' => 'password', 'database' => 'servbay_codeigniter_app', 'DBDriver' => 'MySQLi', 'DBPrefix' => '', 'pConnect' => false, 'DBDebug' => (ENVIRONMENT !== 'production'), 'charset' => 'utf8mb4', 'DBCollat' => 'utf8mb4_general_ci', 'swapPre' => '', 'encrypt' => false, 'compress' => false, 'strictOn' => false, 'failover' => [], 'port' => 3306, ];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Configurare il server web
Utilizzare la funzione 'hosting' di ServBay per accedere al progetto CodeIgniter tramite il server web. Nella configurazione dell'hosting di ServBay, aggiungere un nuovo host:
- Nome:
My First CodeIgniter Dev Site
- Dominio:
servbay-codeigniter-test.local
- Tipo di sito web:
PHP
- Versione di PHP: selezionare
8.3
- Directory radice del sito web:
/Applications/ServBay/www/servbay-codeigniter-app/public
Consulta Aggiungere il primo sito web per i passaggi dettagliati.
Aggiungere codice di esempio
Aggiungere il seguente codice nel file app/Controllers/Home.php
:
namespace App\Controllers;
use CodeIgniter\Controller;
class Home extends Controller
{
public function index()
{
return 'Hello ServBay!';
}
public function memcached()
{
$cache = \Config\Services::cache();
$cache->save('key', 'Hello Memcached!', 60);
$value = $cache->get('key');
return $value;
}
public function redis()
{
$redis = \Config\Services::cache();
$redis->set('key', 'Hello Redis!');
$value = $redis->get('key');
return $value;
}
public function mysqlAdd()
{
$db = \Config\Database::connect();
$db->table('users')->insert([
'name' => 'ServBay',
'email' => '[email protected]',
]);
return 'User added';
}
public function mysql()
{
$db = \Config\Database::connect();
$users = $db->table('users')->get()->getResult();
return json_encode($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
Accedere al sito web
Aprire il browser e visitare l'URL:
https://servbay-codeigniter-test.local
: Vedrai la pagina con il messaggioHello ServBay!
.
Esempio di NoSQL Database
Esempio Memcached
Installare l'estensione Memcached
Nel ServBay, l'estensione Memcached è preinstallata, quindi non è necessaria un'installazione aggiuntiva.
Configurare Memcached
Configurare le informazioni di connessione Memcached nel file
app/Config/Cache.php
:phppublic $memcached = [ 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 1, ];
1
2
3
4
5Utilizzare Memcached
Utilizzare Memcached nel controller:
phppublic function memcached() { $cache = \Config\Services::cache(); $cache->save('key', 'Hello Memcached!', 60); $value = $cache->get('key'); return $value; }
1
2
3
4
5
6
7Aggiungere la rotta nel file
app/Config/Routes.php
:php$routes->get('/memcached', 'Home::memcached');
1Aprire il browser e visitare: https://servbay-codeigniter-test.local/memcached
Esempio Redis
Installare l'estensione Redis
Nel ServBay, l'estensione Redis è preinstallata, quindi non è necessaria un'installazione aggiuntiva.
Configurare Redis
Configurare le informazioni di connessione Redis nel file
app/Config/Cache.php
:phppublic string $handler = 'redis'; public $default = [ 'host' => '127.0.0.1', 'password' => null, 'port' => 6379, 'timeout' => 0, 'database' => 0, ];
1
2
3
4
5
6
7
8
9Utilizzare Redis
Utilizzare Redis nel controller:
phppublic function redis() { $redis = \Config\Services::cache(); $redis->save('key', 'Hello Redis!'); $value = $redis->get('key'); return $value; }
1
2
3
4
5
6
7Aggiungere la rotta nel file
app/Config/Routes.php
:php$routes->get('/redis', 'Home::redis');
1Aprire il browser e visitare: https://servbay-codeigniter-test.local/redis
Esempio di Database Relazionale
Creare la struttura del database e il file di migrazione
Creare un file di migrazione
Utilizzare lo strumento CLI di CodeIgniter per creare un file di migrazione:
bashphp spark make:migration create_users_table
1Modificare il file di migrazione
Trovare il nuovo file di migrazione sotto la directory
app/Database/Migrations
e modificarlo per definire la struttura della tabella:phpuse CodeIgniter\Database\RawSql; public function up() { $this->forge->addField([ 'id' => [ 'type' => 'INT', 'constraint' => 5, 'unsigned' => true, 'auto_increment' => true, ], 'name' => [ 'type' => 'VARCHAR', 'constraint' => '100', ], 'email' => [ 'type' => 'VARCHAR', 'constraint' => '100', 'unique' => true, ], 'created_at' => [ 'type' => 'TIMESTAMP', 'default' => new RawSql('CURRENT_TIMESTAMP'), ], 'updated_at' => [ 'type' => 'TIMESTAMP', 'default' => new RawSql('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'), ], ]); $this->forge->addKey('id', true); $this->forge->createTable('users'); }
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
29
30
31
32Eseguire la migrazione
Utilizzare il comando di migrazione di CodeIgniter per eseguire la migrazione e creare la tabella del database:
bashphp spark migrate
1
Esempio MySQL
Configurare MySQL
Configurare le informazioni di connessione MySQL nel file
app/Config/Database.php
:phppublic $default = [ 'DSN' => '', 'hostname' => '127.0.0.1', 'username' => 'root', 'password' => 'password', 'database' => 'servbay_codeigniter_app', 'DBDriver' => 'MySQLi', 'DBPrefix' => '', 'pConnect' => false, 'DBDebug' => (ENVIRONMENT !== 'production'), 'charset' => 'utf8', 'DBCollat' => 'utf8_general_ci', 'swapPre' => '', 'encrypt' => false, 'compress' => false, 'strictOn' => false, 'failover' => [], 'port' => 3306, ];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19Aggiungere rotte
Aggiungere le seguenti rotte nel file
app/Config/Routes.php
:php$routes->get('/mysql-add', 'Home::mysqlAdd'); $routes->get('/mysql', 'Home::mysql');
1
2Scrivere dati utente
Scrivere i dati utente nel controller:
phppublic function mysqlAdd() { $db = \Config\Database::connect(); $db->table('users')->insert([ 'name' => 'ServBay', 'email' => '[email protected]', ]); return 'User added'; }
1
2
3
4
5
6
7
8
9Utilizzare MySQL
Chiamare il database nel controller:
phppublic function mysql() { $db = \Config\Database::connect(); $users = $db->table('users')->get()->getResult(); return json_encode($users); }
1
2
3
4
5
6Aprire il browser e visitare:
https://servbay-codeigniter-test.local/mysql-add
ehttps://servbay-codeigniter-test.local/mysql
Esempio PostgreSQL
Configurare PostgreSQL
Configurare le informazioni di connessione PostgreSQL nel file
app/Config/Database.php
:phppublic $default = [ 'DSN' => '', 'hostname' => '127.0.0.1', 'username' => 'root', 'password' => 'password', 'database' => 'servbay_codeigniter_app', 'DBDriver' => 'Postgre', 'DBPrefix' => '', 'pConnect' => false, 'DBDebug' => (ENVIRONMENT !== 'production'), 'charset' => 'utf8', 'DBCollat' => 'utf8_general_ci', 'swapPre' => '', 'encrypt' => false, 'compress' => false, 'strictOn' => false, 'failover' => [], 'port' => 5432, ];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19Creare un file di migrazione
Utilizzare il comando seguente per creare un file di migrazione:
bashphp spark make:migration create_users_table
1Modificare il file di migrazione
phpuse CodeIgniter\Database\RawSql; public function up() { $this->forge->addField([ 'id' => [ 'type' => 'INT', 'constraint' => 5, 'unsigned' => true, 'auto_increment' => true, ], 'name' => [ 'type' => 'VARCHAR', 'constraint' => '100', ], 'email' => [ 'type' => 'VARCHAR', 'constraint' => '100', 'unique' => true, ], 'created_at' => [ 'type' => 'TIMESTAMP', 'default' => new RawSql('NOW()'), ], 'updated_at' => [ 'type' => 'TIMESTAMP', 'default' => new RawSql('NOW()'), ], ]); $this->forge->addKey('id', true); $this->forge->createTable('users'); }
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
29
30
31
32Eseguire la migrazione
Eseguire il comando seguente per eseguire la migrazione e creare la struttura della tabella:
bashphp spark migrate
1Aggiungere rotte
Aggiungere le seguenti rotte nel file
app/Config/Routes.php
:php$routes->get('/pgsql-add', 'Home::pgsqlAdd'); $routes->get('/pgsql', 'Home::pgsql');
1
2Scrivere dati utente
Scrivere i dati utente nel controller:
phppublic function pgsqlAdd() { $db = \Config\Database::connect(); $db->table('users')->insert([ 'name' => 'ServBay', 'email' => '[email protected]', ]); return 'User added'; }
1
2
3
4
5
6
7
8
9Utilizzare PostgreSQL
Chiamare il database nel controller:
phppublic function pgsql() { $db = \Config\Database::connect(); $users = $db->table('users')->get()->getResult(); return json_encode($users); }
1
2
3
4
5
6Aprire il browser e visitare:
https://servbay-codeigniter-test.local/pgsql-add
ehttps://servbay-codeigniter-test.local/pgsql
Seguendo questi passaggi, avete creato ed eseguito con successo un progetto CodeIgniter utilizzando le funzionalità di ServBay per gestire e accedere al progetto, collegando diversi database e richiamando i dati. Speriamo che questo articolo vi abbia aiutato a iniziare rapidamente con CodeIgniter e a utilizzarlo nei vostri progetti.