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が組み込まれており、デフォルト設定は最適化され、デバッグ済みです。開発者はServBayの「ホスト」機能を使用してサイトを管理するだけで、Caddyの設定ファイルを手動で変更する必要はありません。
リライトルールと.htaccess
NGINXやApacheでは、開発者は通常、URLリライトやその他の設定を処理するために自分でリライトルールや.htaccessファイルを作成する必要があります。しかし、ServBayにはCaddyのルールが既に設定されているため、特別な要件がない限り、これらのルールを自分で作成する必要はありません。
さらに理解を深めるために
詳細情報については、Rewriteとhtaccess、ApacheサイトをServBayに移行する方法、NGINXサイトをServBayに移行する方法をご覧ください。
FuelPHPプロジェクトの作成
TIP
ServBayは、開発者がウェブサイトを/Applications/ServBay/www
ディレクトリに配置することを推奨しています。これにより管理が容易になります。
Composerのインストール
ServBayにはComposerが事前にインストールされているため、個別にインストールする必要はありません。
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サーバーの設定
ServBayの「ホスト」機能を使用して、Webサーバー経由でFuelPHPプロジェクトにアクセスします。ServBayの「ホスト」設定で、新しいホストを追加します:
- 名前:
My First FuelPHP Dev Site
- ドメイン:
servbay-fuelphp-test.local
- サイトタイプ:
PHP
- PHPバージョン:
8.3
を選択 - サイトルートディレクトリ:
/Applications/ServBay/www/servbay-fuelphp-app/public
詳細な設定手順は最初のウェブサイトの追加をご参照ください。
サンプルコードの追加
fuel/app/classes/controller/welcome.php
ファイルに以下のコードを追加します:
use Fuel\Core\Controller;
use Fuel\Core\Response;
use Fuel\Core\Cache;
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()
{
$redis = \Redis::instance();
$redis->set('key', 'Hello Redis!');
$value = $redis->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
サイトへのアクセス
ブラウザを開き、以下のURLにアクセスします:
https://servbay-fuelphp-test.local
:ページにHello ServBay!
と表示されます。
NoSQLデータベースの例
Memcachedの例
Memcached拡張のインストール
ServBayではMemcached拡張が事前にインストールされているため、追加のインストールは不要です。
Memcachedの設定
fuel/app/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ルートの追加
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ブラウザを開いて、次のURLにアクセスします:https://servbay-fuelphp-test.local/memcached
Redisの例
Redis拡張のインストール
ServBayではRedis拡張が事前にインストールされているため、追加のインストールは不要です。
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ブラウザを開いて、次のURLにアクセスします:https://servbay-fuelphp-test.local/redis
関係型データベースの例
データベースの構造とマイグレーションファイルの作成
マイグレーションファイルの作成
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
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ユーザーデータの挿入
コントローラ内でユーザーデータを挿入します:
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
以上の手順を通じて、FuelPHPプロジェクトを作成および実行し、ServBayの提供する機能を活用してプロジェクトを管理およびアクセスし、さまざまなデータベースに接続しデータを呼び出すことに成功しました。この記事がFuelPHPをすぐに使い始めるための参考になり、あなたのプロジェクトに役立つことを願っています。