Créer et exécuter un projet CodeIgniter
Qu'est-ce que CodeIgniter ?
CodeIgniter est un framework PHP léger, idéal pour développer des applications Web rapides et efficaces. Il suit le modèle de conception MVC (Model-View-Controller), offrant de nombreuses fonctionnalités et outils pour aider les développeurs à créer rapidement des applications Web de haute qualité. CodeIgniter est réputé pour sa simplicité, ses performances élevées et sa facilité d'apprentissage, ce qui en fait un choix privilégié pour de nombreux développeurs.
Principales caractéristiques et avantages de CodeIgniter
- Léger : Le cœur de CodeIgniter est très petit, ne contenant que les composants nécessaires, ce qui le rend très rapide à charger.
- Haute performance : CodeIgniter est connu pour ses performances et sa vitesse efficaces, capable de gérer des demandes à haute concurrence.
- Facile à apprendre : Il offre une API simple et une documentation riche, permettant aux développeurs de rapidement prendre en main le framework.
- Flexibilité : Il permet aux développeurs de choisir librement et d'utiliser des bibliothèques et des plugins tiers pour étendre et personnaliser les fonctionnalités.
- Support communautaire puissant : CodeIgniter bénéficie d'une communauté de développeurs active et de nombreuses extensions tierces.
CodeIgniter peut aider les développeurs à créer rapidement des applications Web performantes et de haute qualité, adaptées à des projets de toutes tailles.
Créer et exécuter un projet CodeIgniter avec ServBay
Dans cet article, nous allons utiliser l'environnement PHP fourni par ServBay pour créer et exécuter un projet CodeIgniter. Nous allons utiliser la fonctionnalité 'Hôte' de ServBay pour configurer le serveur Web et accéder à notre projet via une configuration simple.
Note : Si vous étiez un utilisateur de NGINX ou Apache
ServBay utilise par défaut Caddy comme serveur Web. Pour les utilisateurs passant de NGINX ou Apache à ServBay, il y a certains changements clés à noter :
Configuration de Caddy
ServBay a intégré Caddy et la configuration par défaut est déjà optimisée et testée. Les développeurs peuvent gérer leur site via la fonctionnalité 'Hôte' de ServBay sans avoir à modifier manuellement les fichiers de configuration de Caddy.
Règles de réécriture et .htaccess
Dans NGINX et Apache, les développeurs doivent généralement écrire leurs propres règles de réécriture et fichiers .htaccess pour gérer les réécritures d'URL et autres configurations. Cependant, ServBay a déjà configuré les règles de Caddy par défaut, donc sauf en cas de besoin spécifique, les développeurs n'ont pas besoin d'écrire ces règles.
En savoir plus
Pour plus d'informations, veuillez consulter Rewrite et htaccess, Comment migrer un site Apache vers ServBay et Comment migrer un site NGINX vers ServBay.
Créer un projet CodeIgniter
TIP
ServBay recommande de placer vos sites Web dans le répertoire /Applications/ServBay/www
pour une gestion facile.
Installer Composer
ServBay inclut déjà Composer, donc il n'est pas nécessaire de l'installer séparément.
Créer un projet CodeIgniter
Utilisez Composer pour créer un nouveau projet CodeIgniter :
bashcd /Applications/ServBay/www mkdir servbay-codeigniter-app cd servbay-codeigniter-app composer create-project codeigniter4/appstarter .
1
2
3
4Entrer dans le répertoire du projet
Accédez au nouveau répertoire du projet CodeIgniter :
bashcd /Applications/ServBay/www/servbay-codeigniter-app
1
Configuration initiale
Configurer la connexion à la base de données
Configurez les informations de connexion à la base de données dans le fichier
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
Configurer le serveur Web
Utilisez la fonctionnalité 'Hôte' de ServBay pour accéder au projet CodeIgniter via le serveur Web. Dans les paramètres 'Hôte' de ServBay, ajoutez un nouvel hôte :
- Nom :
My First CodeIgniter Dev Site
- Domaine :
servbay-codeigniter-test.local
- Type de site :
PHP
- Version de PHP : choisissez
8.3
- Répertoire racine du site :
/Applications/ServBay/www/servbay-codeigniter-app/public
Pour plus de détails sur les étapes de configuration, consultez Ajouter le premier site Web.
Ajouter un code exemple
Ajoutez le code suivant dans le fichier 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
Accéder au site Web
Ouvrez votre navigateur et accédez à l'URL suivante :
https://servbay-codeigniter-test.local
: Vous devriez voir la page afficherHello ServBay!
.
Exemple de bases de données NoSQL
Exemple Memcached
Installer l'extension Memcached
L'extension Memcached est déjà préinstallée dans ServBay, il n'est donc pas nécessaire de l'installer séparément.
Configurer Memcached
Configurez les informations de connexion Memcached dans le fichier
app/Config/Cache.php
:phppublic $memcached = [ 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 1, ];
1
2
3
4
5Utiliser Memcached
Utilisez le cache dans votre contrôleur :
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
7Ajouter une route dans le fichier
app/Config/Routes.php
:php$routes->get('/memcached', 'Home::memcached');
1Ouvrez votre navigateur et accédez à l'URL : https://servbay-codeigniter-test.local/memcached
Exemple Redis
Installer l'extension Redis
L'extension Redis est déjà préinstallée dans ServBay, il n'est donc pas nécessaire de l'installer séparément.
Configurer Redis
Configurez les informations de connexion Redis dans le fichier
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
9Utiliser Redis
Utilisez le cache dans votre contrôleur :
phppublic function redis() { $redis = \Config\Services::cache(); $redis->save('key', 'Hello Redis!'); $value = $redis->get('key'); return $value; }
1
2
3
4
5
6
7Ajouter une route dans le fichier
app/Config/Routes.php
:php$routes->get('/redis', 'Home::redis');
1Ouvrez votre navigateur et accédez à l'URL : https://servbay-codeigniter-test.local/redis
Exemple de base de données relationnelle
Créer une structure de base de données et un fichier de migration
Créer un fichier de migration
Utilisez l'outil CLI de CodeIgniter pour créer un fichier de migration :
bashphp spark make:migration create_users_table
1Éditer le fichier de migration
Trouvez le fichier de migration nouvellement créé dans le répertoire
app/Database/Migrations
et éditez-le pour définir la structure de la table de la base de données :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
32Exécuter la migration
Utilisez la commande de migration de CodeIgniter pour exécuter la migration et créer la table de la base de données :
bashphp spark migrate
1
Exemple MySQL
Configurer MySQL
Configurez les informations de connexion MySQL dans le fichier
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
19Ajouter les routes
Ajoutez les routes suivantes dans le fichier
app/Config/Routes.php
:php$routes->get('/mysql-add', 'Home::mysqlAdd'); $routes->get('/mysql', 'Home::mysql');
1
2Insérer des données utilisateur
Insérez des données utilisateur dans le contrôleur :
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
9Utiliser MySQL
Appelez la base de données dans le contrôleur :
phppublic function mysql() { $db = \Config\Database::connect(); $users = $db->table('users')->get()->getResult(); return json_encode($users); }
1
2
3
4
5
6Ouvrez votre navigateur et accédez aux URL suivantes :
https://servbay-codeigniter-test.local/mysql-add
ethttps://servbay-codeigniter-test.local/mysql
Exemple PostgreSQL
Configurer PostgreSQL
Configurez les informations de connexion PostgreSQL dans le fichier
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
19Créer un fichier de migration
Utilisez la commande suivante pour générer un fichier de migration :
bashphp spark make:migration create_users_table
1Éditer le fichier de migration
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
32Exécuter la migration
Exécutez la commande suivante pour appliquer la migration et créer la structure de la table :
bashphp spark migrate
1Ajouter les routes
Ajoutez les routes suivantes dans le fichier
app/Config/Routes.php
:php$routes->get('/pgsql-add', 'Home::pgsqlAdd'); $routes->get('/pgsql', 'Home::pgsql');
1
2Insérer des données utilisateur
Insérez des données utilisateur dans le contrôleur :
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
9Utiliser PostgreSQL
Appelez la base de données dans le contrôleur :
phppublic function pgsql() { $db = \Config\Database::connect(); $users = $db->table('users')->get()->getResult(); return json_encode($users); }
1
2
3
4
5
6Ouvrez votre navigateur et accédez aux URL suivantes :
https://servbay-codeigniter-test.local/pgsql-add
ethttps://servbay-codeigniter-test.local/pgsql
En suivant ces étapes, vous avez réussi à créer et exécuter un projet CodeIgniter, à utiliser les fonctionnalités fournies par ServBay pour gérer et accéder à votre projet, tout en connectant plusieurs bases de données et en appelant des données. J'espère que cet article vous aidera à prendre en main CodeIgniter rapidement et à l'appliquer à vos projets.