CodeIgniterプロジェクトの作成と実行
CodeIgniterとは何ですか?
CodeIgniterは、軽量のPHPフレームワークであり、高速で効率的なウェブアプリケーションを開発するのに適しています。MVC(Model-View-Controller)デザインパターンに従い、リッチな機能とツールセットを提供し、開発者が迅速に高品質なウェブアプリケーションを構築できるようにします。そのシンプルさ、高性能、および学習の容易さで知られ、開発者の間で人気があります。
CodeIgniterの主な機能と利点
- 軽量: CodeIgniterのコアシステムは非常に小さく、必要最低限のコンポーネントのみを含むため、非常に素早くロードされます。
- 高性能: CodeIgniterは効率的なパフォーマンスと速度で知られ、高い同時実行性を処理することができます。
- 学習が容易: シンプルで使いやすいAPIと包括的なドキュメントを提供し、開発者が迅速に開始できるようにします。
- 柔軟性: サードパーティのライブラリやプラグインを自由に選んで使用でき、拡張やカスタマイズが便利です。
- 強力なコミュニティサポート: 活発な開発者コミュニティと多くのサードパーティ拡張が存在します。
CodeIgniterは、迅速に高性能で高品質なウェブアプリケーションを構築するのに役立ち、あらゆる規模のプロジェクトに適しています。
ServBayを使用したCodeIgniterプロジェクトの作成と実行
この記事では、ServBayのPHP環境を使用してCodeIgniterプロジェクトを作成し、実行する方法を説明します。ServBayの「ホスト」機能を利用してウェブサーバーを設定し、簡単な設定でプロジェクトにアクセスできるようにします。
注: NGINXまたはApacheを使用していた場合
ServBayはデフォルトのウェブサーバーとしてCaddyを使用しています。NGINXやApacheからServBayに移行するユーザーにとって、いくつかの重要な変更点があります:
Caddyの設定
CaddyはすでにServBayに組み込まれており、デフォルトの設定は最適化およびデバッグされています。開発者はCaddyの設定ファイルを手動で変更することなく、ServBayの「ホスト」機能を介してサイトを管理するだけです。
リライトルールと.htaccess
NGINXやApacheでは、URLリライトやその他の設定のために独自のリライトルールや.htaccessファイルを記述する必要がありますが、ServBayにはCaddy用のルールが事前に設定されているため、特別な要件がない限り、これらのルールを自分で書く必要はありません。
詳細情報
詳細については、リライトとhtaccess、ApacheウェブサイトのServBayへの移行方法、NGINXウェブサイトのServBayへの移行方法を参照してください。
CodeIgniterプロジェクトの作成
TIP
ServBayは、ウェブサイトを管理しやすくするために、ウェブサイトを/Applications/ServBay/www
ディレクトリに配置することを推奨しています。
Composerのインストール
ComposerはServBayに事前にインストールされているため、別途インストールする必要はありません。
CodeIgniterプロジェクトの作成
Composerを使用して、新しいCodeIgniterプロジェクトを作成します:
bashcd /Applications/ServBay/www mkdir servbay-codeigniter-app cd servbay-codeigniter-app composer create-project codeigniter4/appstarter .
1
2
3
4プロジェクトディレクトリに移動
新しく作成されたCodeIgniterプロジェクトディレクトリに移動します:
bashcd /Applications/ServBay/www/servbay-codeigniter-app
1
初期設定
データベース接続の設定
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
ウェブサーバーの設定
ServBayの「ホスト」機能を使用して、ウェブサーバー経由でCodeIgniterプロジェクトにアクセスできるようにします。ServBayの「ホスト」設定で新しいホストを追加します:
- 名前:
My First CodeIgniter Dev Site
- ドメイン:
servbay-codeigniter-test.local
- サイトタイプ:
PHP
- PHPバージョン:
8.3
を選択 - サイトルートディレクトリ:
/Applications/ServBay/www/servbay-codeigniter-app/public
詳細な設定手順については、初めてのウェブサイト追加を参照してください。
サンプルコードを追加
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
ウェブサイトにアクセス
ブラウザを開き、次のURLにアクセスします:
https://servbay-codeigniter-test.local
:Hello ServBay!
というページ出力が表示されます。
NoSQLデータベースの例
Memcachedの例
Memcached拡張のインストール
Memcached拡張はServBayに事前にインストールされているため、追加のインストールは不要です。
Memcachedの設定
app/Config/Cache.php
ファイルでMemcached接続情報を設定します:phppublic $memcached = [ 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 1, ];
1
2
3
4
5Memcachedの使用
コントローラでキャッシュを使用します:
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
7app/Config/Routes.php
にルートを追加します:php$routes->get('/memcached', 'Home::memcached');
1ブラウザを開き、https://servbay-codeigniter-test.local/memcached にアクセスします。
Redisの例
Redis拡張のインストール
Redis拡張はServBayに事前にインストールされているため、追加のインストールは不要です。
Redisの設定
app/Config/Cache.php
ファイルでRedis接続情報を設定します: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
9Redisの使用
コントローラでキャッシュを使用します:
phppublic function redis() { $redis = \Config\Services::cache(); $redis->save('key', 'Hello Redis!'); $value = $redis->get('key'); return $value; }
1
2
3
4
5
6
7app/Config/Routes.php
にルートを追加します:php$routes->get('/redis', 'Home::redis');
1ブラウザを開き、https://servbay-codeigniter-test.local/redis にアクセスします
リレーショナルデータベースの例
MySQLの例
MySQLの設定
app/Config/Database.php
ファイルでMySQL接続情報を設定します: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マイグレーションファイルの作成
CodeIgniterのCLIツールを使用して、マイグレーションファイルを作成します:
bashphp spark make:migration create_users_table
1マイグレーションファイルの編集
app/Database/Migrations
ディレクトリに新しく作成されたマイグレーションファイルを見つけ、データベーステーブルの構造を定義するために編集します: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
32マイグレーションの実行
CodeIgniterのマイグレーションコマンドを使用して、マイグレーションを実行し、データベーステーブルを作成します:
bashphp spark migrate
1ルートの追加
app/Config/Routes.php
に次のルートを追加します:php$routes->get('/mysql-add', 'Home::mysqlAdd'); $routes->get('/mysql', 'Home::mysql');
1
2ユーザーデータの挿入
コントローラでユーザーデータを挿入します:
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
9MySQLの使用
コントローラでデータベースを呼び出します:
phppublic function mysql() { $db = \Config\Database::connect(); $users = $db->table('users')->get()->getResult(); return json_encode($users); }
1
2
3
4
5
6ブラウザを開き、
https://servbay-codeigniter-test.local/mysql-add
およびhttps://servbay-codeigniter-test.local/mysql
にアクセスします。
PostgreSQLの例
PostgreSQLの設定
app/Config/Database.php
ファイルでPostgreSQL接続情報を設定します: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
19マイグレーションファイルの作成
CodeIgniterのCLIツールを使用して、マイグレーションファイルを作成します:
bashphp spark make:migration create_users_table
1マイグレーションファイルの編集
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
32マイグレーションの実行
CodeIgniterのマイグレーションコマンドを使用して、マイグレーションを実行し、データベーステーブルを作成します:
bashphp spark migrate
1ルートの追加
app/Config/Routes.php
に次のルートを追加します:php$routes->get('/pgsql-add', 'Home::pgsqlAdd'); $routes->get('/pgsql', 'Home::pgsql');
1
2ユーザーデータの挿入
コントローラでユーザーデータを挿入します:
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
9PostgreSQLの使用
コントローラでデータベースを呼び出します:
phppublic function pgsql() { $db = \Config\Database::connect(); $users = $db->table('users')->get()->getResult(); return json_encode($users); }
1
2
3
4
5
6ブラウザを開き、
https://servbay-codeigniter-test.local/pgsql-add
およびhttps://servbay-codeigniter-test.local/pgsql
にアクセスします。
以上の手順を通じて、CodeIgniterプロジェクトを作成し、