PHPixie プロジェクトの作成と実行
PHPixieとは?
PHPixie は、軽量の PHP フレームワークで、高性能な Web アプリケーションを迅速に開発するためのものです。HMVC(Hierarchical Model-View-Controller)設計パターンに従っており、シンプルなコード構造と効率的なパフォーマンスを提供します。PHPixie はそのシンプルさ、柔軟性、高性能で知られており、多くの開発者に選ばれるフレームワークとなっています。
PHPixie の主な特徴と利点
- 軽量:PHPixie のコアシステムは非常に小さく、必要なコンポーネントのみを含み、読み込み速度が非常に速いです。
- 高性能:PHPixie はその高効率なパフォーマンスと速度で知られており、高い同時処理要求を処理できます。
- 学びやすい:シンプルで使いやすい API と豊富なドキュメントを提供するため、開発者はすぐに使いこなせます。
- 柔軟性:開発者はサードパーティのライブラリやプラグインを自由に選択し、使用できます。機能の拡張やカスタマイズが容易です。
- 強力なコミュニティサポート:活発な開発者コミュニティと豊富なサードパーティの拡張機能があります。
PHPixie は高性能で高品質な Web アプリケーションを迅速に構築でき、あらゆる規模のプロジェクトに適しています。
ServBay を使用して PHPixie プロジェクトを作成して実行する
この記事では、ServBay によって提供される PHP 環境を使用して PHPixie プロジェクトを作成して実行します。ServBay の『ホスト』機能を利用して Web サーバーを設定し、簡単な構成でプロジェクトにアクセスします。
注意: 以前に NGINX または Apache を使用していたユーザーへ
ServBay はデフォルトで Caddy を Web サーバーとして使用します。NGINX や Apache から ServBay に移行するユーザー向けにいくつかの重要な変更点があります:
Caddy 構成
ServBay には Caddy が組み込まれており、デフォルト構成が最適化され、デバッグ済みです。開発者は ServBay の『ホスト』機能を通じてサイトを管理するだけで、Caddy 構成ファイルを手動で変更する必要はありません。
Rewrite ルールと .htaccess
NGINX や Apache では、開発者が自分で Rewrite ルールや .htaccess ファイルを作成して URL リライトやその他の構成を処理する必要があります。しかし、ServBay にはデフォルトで Caddy のルールが設定されているため、特別な要件がない限り、開発者はこれらのルールを自分で作成する必要がありません。
詳細情報
詳細については、Rewrite および htaccess、Apache サイトを ServBay に移行する方法、NGINX サイトを ServBay に移行する方法をご参照ください。
PHPixie プロジェクトの作成
TIP
ServBay は開発者に、ウェブサイトを/Applications/ServBay/www
ディレクトリに配置することを推奨しています。これにより管理が容易になります。
Composer のインストール
ServBay には既にComposer が組み込まれています, 別途インストールの必要はありません。
PHPixie プロジェクトを作成
Composer を使用して新しい PHPixie プロジェクトを作成します:
bashcd /Applications/ServBay/www mkdir servbay-phpixie-app cd servbay-phpixie-app composer create-project phpixie/project .
1
2
3
4プロジェクトディレクトリに移動
新しく作成された PHPixie プロジェクトディレクトリに移動します:
bashcd /Applications/ServBay/www/servbay-phpixie-app
1
初期設定
データベース接続を設定
assets/config/database.php
ファイルでデータベース接続情報を設定します:phpreturn [ 'default' => [ 'driver' => 'pdo', 'connection' => 'mysql:host=127.0.0.1;dbname=servbay_phpixie_app', 'user' => 'root', 'password' => 'password', 'options' => [] ] ];
1
2
3
4
5
6
7
8
9
Web サーバーの設定
ServBay の『ホスト』機能を使用し、Web サーバーを通じて PHPixie プロジェクトにアクセスします。ServBay の『ホスト』設定で、新しいホストを追加します:
- 名前:
My First PHPixie Dev Site
- ドメイン:
servbay-phpixie-test.local
- ウェブサイトの種類:
PHP
- PHP バージョン:選択
8.3
- ウェブサイトのルートディレクトリ:
/Applications/ServBay/www/servbay-phpixie-app/web
詳細な設定手順については 最初のウェブサイトを追加をご参照ください。
サンプルコードの追加
src/App/HTTP/Controller/Home.php
ファイルに次のコードを追加します:
namespace App\HTTP\Controller;
use PHPixie\HTTP\Request;
use PHPixie\Template;
class Home extends \PHPixie\Controller
{
protected $template;
public function __construct(Template $template)
{
$this->template = $template;
}
public function action_index(Request $request)
{
return $this->template->render('app:home');
}
public function action_memcached(Request $request)
{
$cache = $this->components->cache();
$cache->set('key', 'Hello Memcached!', 60);
$value = $cache->get('key');
return $this->response()->string($value);
}
public function action_redis(Request $request)
{
$redis = $this->components->redis();
$redis->set('key', 'Hello Redis!');
$value = $redis->get('key');
return $this->response()->string($value);
}
public function action_mysql_add(Request $request)
{
$query = $this->components->database()->query();
$query->insert('users')->data([
'name' => 'ServBay',
'email' => '[email protected]',
])->execute();
return $this->response()->string('User added');
}
public function action_mysql(Request $request)
{
$query = $this->components->database()->query();
$users = $query->select('*')->from('users')->execute()->fetchAll();
return $this->response()->json($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
46
47
48
49
50
51
52
assets/templates/app/home.php
ファイルに次のコードを追加します:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Welcome to PHPixie</title>
</head>
<body>
<h1>Welcome to PHPixie</h1>
<p>The page you are looking at is being generated dynamically by PHPixie.</p>
</body>
</html>
2
3
4
5
6
7
8
9
10
11
12
ウェブサイトにアクセス
ブラウザを開き、次の URL にアクセスします:
https://servbay-phpixie-test.local
:ページにWelcome to PHPixie
と表示されるはずです。
NoSQL データベースの例
Memcached の例
Memcached 拡張のインストール
ServBay には Memcached 拡張が予めインストールされているため、追加のインストールは不要です。
Memcached の構成
assets/config/cache.php
ファイルで Memcached 接続情報を設定します:phpreturn [ 'default' => [ 'driver' => 'memcached', 'servers' => [ [ 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 100, ], ], ], };
1
2
3
4
5
6
7
8
9
10
11
12Memcached の使用
コントローラーでキャッシュを使用します:
phppublic function action_memcached(Request $request) { $cache = $this->components->cache(); $cache->set('key', 'Hello Memcached!', 60); $value = $cache->get('key'); return $this->response()->string($value); }
1
2
3
4
5
6
7
Redis の例
Redis 拡張のインストール
ServBay には Redis 拡張が予めインストールされているため、追加のインストールは不要です。
Redis の構成
assets/config/redis.php
ファイルで Redis 接続情報を設定します:phpreturn [ 'default' => [ 'hostname' => '127.0.0.1', 'port' => 6379, 'timeout' => 0, 'database' => 0, ], ];
1
2
3
4
5
6
7
8Redis の使用
コントローラーでキャッシュを使用します:
phppublic function action_redis(Request $request) { $redis = $this->components->redis(); $redis->set('key', 'Hello Redis!'); $value = $redis->get('key'); return $this->response()->string($value); }
1
2
3
4
5
6
7
リレーショナルデータベースの例
データベース構造およびマイグレーションファイルの作成
マイグレーションファイルの作成
PHPixie の CLI ツールを使用してマイグレーションファイルを作成します:
bashphp pixie generate:migration create_users_table
1マイグレーションファイルの編集
assets/migrations
ディレクトリに新しく作成されたマイグレーションファイルを見つけ、それを編集してデータベーステーブルの構造を定義します:phppublic function up() { $this->schema->create('users', function($table) { $table->increments('id'); $table->string('name'); $table->string('email')->unique(); $table->timestamps(); }); } public function down() { $this->schema->drop('users'); }
1
2
3
4
5
6
7
8
9
10
11
12
13
14マイグレーションの実行
PHPixie の CLI ツールを使用してマイグレーションを実行し、データベーステーブルを作成します:
bashphp pixie migrate
1
MySQL の例
MySQL の構成
assets/config/database.php
ファイルで MySQL 接続情報を設定します:phpreturn [ 'default' => [ 'driver' => 'pdo', 'connection' => 'mysql:host=127.0.0.1;dbname=servbay_phpixie_app', 'user' => 'root', 'password' => 'password', 'options' => [] ] };
1
2
3
4
5
6
7
8
9ユーザーデータを書き込む
コントローラーでユーザーデータを書き込みます:
phppublic function action_mysql_add(Request $request) { $query = $this->components->database()->query(); $query->insert('users')->data([ 'name' => 'ServBay', 'email' => '[email protected]', ])->execute(); return $this->response()->string('User added'); }
1
2
3
4
5
6
7
8
9MySQL を使用する
コントローラーでデータベースを呼び出します:
phppublic function action_mysql(Request $request) { $query = $this->components->database()->query(); $users = $query->select('*')->from('users')->execute()->fetchAll(); return $this->response()->json($users); }
1
2
3
4
5
6
PostgreSQL の例
PostgreSQL の構成
assets/config/database.php
ファイルで PostgreSQL 接続情報を設定します:phpreturn [ 'default' => [ 'driver' => 'pdo', 'connection' => 'pgsql:host=127.0.0.1;dbname=servbay_phpixie_app', 'user' => 'root', 'password' => 'password', 'options' => [] ] };
1
2
3
4
5
6
7
8
9ユーザーデータを書き込む
コントローラーでユーザーデータを書き込みます:
phppublic function action_pgsql_add(Request $request) { $query = $this->components->database()->query(); $query->insert('users')->data([ 'name' => 'ServBay', 'email' => '[email protected]', ])->execute(); return $this->response()->string('User added'); }
1
2
3
4
5
6
7
8
9PostgreSQL を使用する
コントローラーでデータベースを呼び出します:
phppublic function action_pgsql(Request $request) { $query = $this->components->database()->query(); $users = $query->select('*')->from('users')->execute()->fetchAll(); return $this->response()->json($users); }
1
2
3
4
5
6
以上の手順を通じて、PHPixie プロジェクトを作成して実行し、ServBay の機能を使用してプロジェクトを管理およびアクセスし、複数のデータベースに接続してデータを呼び出します。この資料が PHPixie を迅速に使いこなすための助けになることを願っています。