Creare ed eseguire un progetto CodeIgniter
Che cos'è CodeIgniter?
CodeIgniter è un framework PHP leggero, ideale per sviluppare applicazioni web rapide ed efficienti. Segue il modello MVC (Model-View-Controller) e offre un ricco set di funzionalità e strumenti che permettono agli sviluppatori di costruire rapidamente applicazioni web di alta qualità. Grazie alla sua semplicità, alte prestazioni e facilità di apprendimento, CodeIgniter è molto popolare tra gli sviluppatori.
Principali caratteristiche e vantaggi di CodeIgniter
- Leggero: Il sistema core di CodeIgniter è molto piccolo e include solo i componenti necessari, permettendo una velocità di caricamento molto rapida.
- Alte prestazioni: CodeIgniter è noto per le sue prestazioni efficienti e rapide, in grado di gestire alta concorrenza.
- Facile da imparare: Fornisce un'API semplice da usare e documentazione completa, permettendo agli sviluppatori di iniziare rapidamente.
- Flessibilità: Permette agli sviluppatori di scegliere e usare liberamente librerie e plugin di terze parti, rendendo l'espansione e la personalizzazione facili.
- Supporto dalla comunità: Ha una comunità di sviluppatori attiva e una ricca disponibilità di estensioni di terze parti.
CodeIgniter può aiutare gli sviluppatori a costruire rapidamente applicazioni web ad alte prestazioni e alta qualità, adatte a qualsiasi dimensione di progetto.
Creare ed eseguire un progetto CodeIgniter con ServBay
In questo articolo, useremo l'ambiente PHP di ServBay per creare ed eseguire un progetto CodeIgniter. Utilizzeremo la funzione "Host" di ServBay per configurare il server web e rendere possibile l'accesso al progetto tramite una semplice configurazione.
WARNING
Attenzione: Se sei un utente NGINX o Apache
ServBay usa Caddy come server web predefinito. Per gli utenti che migrano da NGINX e Apache a ServBay, ci sono alcune modifiche chiave da notare:
Configurazione di Caddy
Caddy è integrato in ServBay e la configurazione predefinita è ottimizzata e testata. Gli sviluppatori devono gestire il sito usando la funzione "Host" di ServBay, senza la necessità di modificare manualmente i file di configurazione di Caddy.
Regole di riscrittura e .htaccess
In NGINX e Apache, gli sviluppatori solitamente scrivono le proprie regole di riscrittura e file .htaccess per la riscrittura degli URL e altre configurazioni. Tuttavia, in ServBay, le regole di Caddy sono pre-configurate e, a meno che non ci siano requisiti speciali, gli sviluppatori non devono scrivere queste regole da soli.
Scopri di più
Per ulteriori informazioni, consulta Rewrite and htaccess, How to Migrate Apache Website to ServBay, How to Migrate NGINX Website to ServBay.
Creare un progetto CodeIgniter
TIP
ServBay consiglia agli sviluppatori di posizionare i siti web nella directory /Applications/ServBay/www
per una gestione agevole.
Installare Composer
Composer è preinstallato in ServBay, quindi non c'è bisogno di installarlo separatamente.
Creare un progetto CodeIgniter
Usare 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
4Entrare nella directory del progetto
Entrare nella directory del nuovo progetto CodeIgniter:
bashcd /Applications/ServBay/www/servbay-codeigniter-app
1
Configurazione iniziale
Configurare la connessione al database
Configurare le impostazioni della 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
Usare la funzione "Host" di ServBay per accedere al progetto CodeIgniter tramite il server web. Aggiungere un nuovo host nel settaggio "Host" di ServBay:
- Nome:
My First CodeIgniter Dev Site
- Dominio:
servbay-codeigniter-test.local
- Tipo di sito:
PHP
- Versione PHP: scegliere
8.3
- Directory radice del sito:
/Applications/ServBay/www/servbay-codeigniter-app/public
Per i dettagli sui passaggi di configurazione, consulta Adding the First Website.
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
Accesso al sito web
Aprire il browser e visitare i seguenti URL:
https://servbay-codeigniter-test.local
: vedrai la pagina di outputHello ServBay!
.
Esempio di database NoSQL
Esempio di Memcached
Installare l'estensione Memcached
L'estensione Memcached è preinstallata in ServBay, quindi non c'è bisogno di installarla separatamente.
Configurare Memcached
Configurare le informazioni di connessione a Memcached nel file
app/Config/Cache.php
:phppublic $memcached = [ 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 1, ];
1
2
3
4
5Usare Memcached
Usare la cache 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 una rotta in
app/Config/Routes.php
:php$routes->get('/memcached', 'Home::memcached');
1Aprire il browser e visitare https://servbay-codeigniter-test.local/memcached
Esempio di Redis
Installare l'estensione Redis
L'estensione Redis è preinstallata in ServBay, quindi non c'è bisogno di installarla separatamente.
Configurare Redis
Configurare le informazioni di connessione a 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
9Usare Redis
Usare la cache 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 una rotta in
app/Config/Routes.php
:php$routes->get('/redis', 'Home::redis');
1Aprire il browser e visitare https://servbay-codeigniter-test.local/redis
Esempi di database relazionali
Esempio di MySQL
Configurare MySQL
Configurare le informazioni di connessione a 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' => '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
19Creare un file di migrazione
Usare 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 creato nella directory
app/Database/Migrations
e modificarlo per definire la struttura della tabella del database: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
Usare il comando di migrazione di CodeIgniter per eseguire la migrazione e creare la tabella del database:
bashphp spark migrate
1Aggiungere le rotte
Aggiungere le seguenti rotte in
app/Config/Routes.php
:php$routes->get('/mysql-add', 'Home::mysqlAdd'); $routes->get('/mysql', 'Home::mysql');
1
2Inserire dati utente
Inserire dati utente nel controller:
phppublic function mysqlAdd() { $db = \Config\Database::connect(); $db->table('users')->insert([ 'name' => 'ServBay', 'email' => '[email protected]', ]); return 'Utente aggiunto'; }
1
2
3
4
5
6
7
8
9Usare 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 di PostgreSQL
Configurare PostgreSQL
Configurare le informazioni di connessione a 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
Usare lo strumento CLI di CodeIgniter 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
Usare il comando di migrazione di CodeIgniter per eseguire la migrazione e creare la tabella del database:
bashphp spark migrate
1Aggiungere le rotte
Aggiungere le seguenti rotte in
app/Config/Routes.php
:php$routes->get('/pgsql-add', 'Home::pgsqlAdd'); $routes->get('/pgsql', 'Home::pgsql');
1
2Inserire dati utente
Inserire dati utente nel controller:
phppublic function pgsqlAdd() { $db = \Config\Database::connect(); $db->table('users')->insert([ 'name' => 'ServBay', 'email' => '[email protected]', ]); return 'Utente aggiunto'; }
1
2
3
4
5
6
7
8
9Usare 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
Segui questi passaggi per creare ed eseguire con successo un progetto CodeIgniter, utilizzando le funzionalità di ServBay per gestire e accedere al tuo progetto e connetterti a diversi database per l'interazione dei dati. Speriamo che questo articolo ti aiuti a iniziare rapidamente con CodeIgniter e a applicarlo nei tuoi progetti.