FuelPHPプロジェクトの作成と実行
FuelPHPとは?
FuelPHPは、モダンなWebアプリケーションを開発するために設計された柔軟でモジュラーなPHPフレームワークです。HMVC(階層モデルビューコントローラ)デザインパターンに従い、開発者が高品質のWebアプリケーションを迅速に構築できるよう、豊富な機能とツールを提供します。FuelPHPは、その柔軟性、高性能、および拡張の容易さで知られており、多くの開発者にとって好まれる選択肢です。
FuelPHPの主な特徴と利点
- HMVCアーキテクチャ: 階層的MVCデザインパターンをサポートし、コードの再利用性とモジュラー開発を促進します。
- 高性能: FuelPHPは効率的な性能と速度で知られており、高い同時接続要求を処理する能力があります。
- 拡張の容易さ: 豊富な拡張メカニズムを提供し、カスタム機能を簡単に追加できます。
- セキュリティ: 入力検証、出力フィルタリング、およびCSRF保護など、複数の組み込みセキュリティ機能を含んでいます。
- 強力なコミュニティサポート: アクティブな開発者コミュニティと豊富なサードパーティ拡張機能があります。
FuelPHPは、大小さまざまなプロジェクトに適した高性能で高品質なWebアプリケーションを迅速に構築するのに役立ちます。
ServBayを使用したFuelPHPプロジェクトの作成と実行
この記事では、ServBayが提供するPHP環境を使用してFuelPHPプロジェクトを作成および実行します。ServBayの「ホスト」機能を使用してWebサーバーを設定し、簡単な構成でプロジェクトにアクセスします。
注意: 以前にNGINXまたはApacheを使用していたユーザー向け
ServBayはデフォルトでCaddyをWebサーバーとして使用します。NGINXおよびApacheからServBayに移行するユーザー向けの主な変更点は次のとおりです。
Caddyの構成
ServBayにはCaddyが統合されており、デフォルトの構成は最適化およびデバッグされています。開発者はCaddyの構成ファイルを手動で変更せずに、ServBayの「ホスト」機能を通じてサイトを管理するだけです。
リライトルールと.htaccess
NGINXおよびApacheでは、URLリライトやその他の構成のためにカスタムのリライトルールや.htaccessファイルを作成する必要があります。しかし、ServBayにはあらかじめCaddyルールが構成されているため、特別な要件がない限り、これらのルールを作成する必要はありません。
詳細情報
詳細については、Rewrite and htaccess、How to Migrate Apache Websites to ServBay、およびHow to Migrate NGINX Websites to ServBayを参照してください。
FuelPHPプロジェクトの作成
TIP
ServBayは、Webサイトを管理しやすくするためにWebサイトを/Applications/ServBay/www
ディレクトリに配置することを推奨しています。
Composerのインストール
ComposerはServBayにプリインストールされているため、別途インストールする必要はありません。
FuelPHPプロジェクトの作成
Composerを使用して新しいFuelPHPプロジェクトを作成します。
bashcd /Applications/ServBay/www mkdir servbay-fuelphp-app cd servbay-fuelphp-app composer create-project fuel/fuel .
1
2
3
4プロジェクトディレクトリに移動
作成したばかりのFuelPHPプロジェクトディレクトリに移動します。
bashcd /Applications/ServBay/www/servbay-fuelphp-app
1
初期構成
データベース接続の構成
fuel/app/config/development/db.php
ファイルでデータベース接続情報を構成します。phpreturn [ 'default' => [ 'connection' => [ 'dsn' => 'mysql:host=localhost;dbname=fuel_dev', 'username' => 'root', 'password' => 'root', ], ], ];
1
2
3
4
5
6
7
8
9
Webサーバーの構成
FuelPHPプロジェクトにWebサーバー経由でアクセスするために、ServBayの「ホスト」機能を使用します。ServBayの「ホスト」設定で新しいホストを追加します。
- 名前:
My First FuelPHP Dev Site
- ドメイン:
servbay-fuelphp-test.local
- ウェブサイトタイプ:
PHP
- PHPバージョン:
8.3
を選択 - ウェブサイトルートディレクトリ:
/Applications/ServBay/www/servbay-fuelphp-app/public
詳細な設定手順については、Adding the First Websiteを参照してください。
サンプルコードの追加
fuel/app/classes/controller/welcome.php
ファイルに以下のコードを追加します。
use Fuel\Core\Controller;
use Fuel\Core\Response;
use Fuel\Core\Cache;
use Fuel\Core\DB;
class Controller_Welcome extends Controller
{
public function action_index()
{
return Response::forge('Hello ServBay!');
}
public function action_memcached()
{
Cache::set('key', 'Hello Memcached!', 60);
$value = Cache::get('key');
return Response::forge($value);
}
public function action_redis()
{
Cache::set('key', 'Hello Redis!', 60);
$value = Cache::get('key');
return Response::forge($value);
}
public function action_mysql_add()
{
DB::insert('users')->set([
'name' => 'ServBay',
'email' => '[email protected]',
])->execute();
return Response::forge('User added');
}
public function action_mysql()
{
$users = DB::select()->from('users')->execute()->as_array();
return Response::forge(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
45
Webサイトのアクセス
ブラウザを開いて次のURLにアクセスします。
https://servbay-fuelphp-test.local
: ページにHello ServBay!
と表示されます。
NoSQLデータベースの例
Memcachedの例
Memcached拡張機能のインストール
Memcached拡張機能はServBayにプリインストールされているため、追加のインストールは必要ありません。
Memcachedの構成
fuel/core/config/cache.php
ファイルでMemcachedの接続情報を構成します。phpreturn [ 'driver' => 'memcached', 'memcached' => [ 'cache_id' => 'fuel', 'servers' => [ 'default' => [ 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 100, ], ] ], ];
1
2
3
4
5
6
7
8
9
10
11
12
13
14ルートの追加
fuel/app/config/routes.php
に以下のルートを追加します。phpreturn array( 'memcached' => 'welcome/memcached', )
1
2
3Memcachedの使用
コントローラーでキャッシュを使用します。
phppublic function action_memcached() { Cache::set('key', 'Hello Memcached!', 60); $value = Cache::get('key'); return Response::forge($value); }
1
2
3
4
5
6
7ブラウザを開いて
https://servbay-fuelphp-test.local/memcached
にアクセスします。
Redisの例
Redis拡張機能のインストール
Redis拡張機能はServBayにプリインストールされているため、追加のインストールは必要ありません。
Redisの構成
fuel/app/config/redis.php
ファイルでRedisの接続情報を構成します。phpreturn [ 'driver' => 'redis', 'redis' => [ 'database' => 'default', ], ];
1
2
3
4
5
6ルートの追加
fuel/app/config/routes.php
に以下のルートを追加します。phpreturn array( 'redis' => 'welcome/redis', )
1
2
3Redisの使用
コントローラーでキャッシュを使用します。
phppublic function action_redis() { Cache::set('key', 'Hello Redis!', 60); $value = Cache::get('key'); return Response::forge($value); }
1
2
3
4
5
6
7ブラウザを開いて
https://servbay-fuelphp-test.local/redis
にアクセスします。
関係データベースの例
MySQLの例
MySQLの構成
fuel/app/config/development/db.php
ファイルでMySQLの接続情報を構成します。phpreturn [ 'default' => [ 'connection' => [ 'dsn' => 'mysql:host=localhost;dbname=fuel_dev', 'username' => 'root', 'password' => 'root', ], ], ];
1
2
3
4
5
6
7
8
9マイグレーションファイルの作成
FuelPHPの油ツールを使用してマイグレーションファイルを作成します。
bashphp oil g migration create_users_table
1マイグレーションファイルの編集
fuel/app/migrations
ディレクトリに新しく作成されたマイグレーションファイルを見つけて、データベーステーブル構造を定義するように編集します。php<?php namespace Fuel\Migrations; use Fuel\Core\DBUtil; class Create_users_table { public function up() { DBUtil::create_table('users', [ 'id' => ['type' => 'int', 'constraint' => 11, 'auto_increment' => true], 'name' => ['type' => 'varchar', 'constraint' => 100], 'email' => ['type' => 'varchar', 'constraint' => 100, 'unique' => true], ], ['id']); } public function down() { DBUtil::drop_table('users'); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21マイグレーションの実行
FuelPHPの油ツールを使用してマイグレーションを実行し、データベーステーブルを作成します。
bashphp oil refine migrate
1ルートの追加
fuel/app/config/routes.php
に以下のルートを追加します。phpreturn array( 'mysql_add' => 'welcome/mysql_add', 'mysql' => 'welcome/mysql', )
1
2
3
4ユーザーデータの挿入
コントローラーでユーザーデータを挿入します。
phppublic function action_mysql_add() { DB::insert('users')->set([ 'name' => 'ServBay', 'email' => '[email protected]', ])->execute(); return Response::forge('User added'); }
1
2
3
4
5
6
7
8
9MySQLを使用する
コントローラーでデータベースを呼び出します。
phppublic function action_mysql() { $users = DB::select()->from('users')->execute()->as_array(); return Response::forge(json_encode($users)); }
1
2
3
4
5
6ブラウザを開いて
https://servbay-fuelphp-test.local/mysql_add
およびhttps://servbay-fuelphp-test.local/mysql
にアクセスします。
上記の手順を踏むことで、ServBayの機能を使用してFuelPHPプロジェクトを作成および実行し、複数のデータベースに接続してクエリを実行することができました。この記事が、FuelPHPの迅速な開始とプロジェクトへの適用に役立つことを願っています。