如何启用ServBay自带的Phalcon模块
ServBayは強力な統合Web開発ツールとして、Phalconモジュールを内蔵しており、その有効化プロセスは非常に簡単です。Phalconは高性能なPHPフレームワークで、モジュール化された設計により、開発者は効率的なWebアプリケーションを簡単に構築することが可能です。
Phalconフレームワークの概要
Phalconはオープンソースのフル機能PHPフレームワークであり、その速度と低資源消費で知られています。従来のPHPフレームワークとは異なり、PhalconはC言語で記述され、PHP拡張として読み込まれます。これにより、Phalconは性能面で顕著な優位性を持ちながら、豊富な機能を提供します。
主な特徴
- 高性能:PhalconはC拡張として実行されるため、純粋なPHPで実装されたフレームワークよりも高速で、資源消費も少ないです。
- 低オーバーヘッド:Phalconのアーキテクチャ設計により、リクエストの処理時に必要とされるメモリやCPU資源が少なく済みます。
- 豊富な機能:Phalconは完全なMVC構造、ORM、テンプレートエンジン、ルーティング、キャッシュ、キューなどの機能を提供し、様々なWeb開発ニーズを満たします。
- 使いやすさ:Cで記述されているにも関わらず、開発者は馴染みのあるPHPシンタックスを使用して開発できるため、学習コストが低くなっています。
- モジュール化設計:Phalconコンポーネントは高度にモジュール化されており、開発者は必要に応じてさまざまなコンポーネントを選択して使用できます。
ServBay自带のPhalconモジュールバージョン
ServBayは複数のPHPバージョンをサポートしており、それぞれのバージョンに対応するPhalconモジュールを事前にインストールしています。具体的なバージョンは以下の通りです:
- PHP 5.6、7.0、7.1:Phalcon 3.4.5
- PHP 7.2、7.3、7.4:Phalcon 4.1.2
- PHP 8.0、8.1、8.2、8.3、8.4:Phalcon 5.7.0
Phalconモジュールの有効化方法
デフォルトでは、Phalconモジュールは無効になっています。Phalconモジュールを有効化する手順は非常に簡単で、ナビゲートして语言
-PHP
に入り、例えば PHP 8.4
のように有効化したいPHPバージョンを選択し、右側の扩展
をクリックし、続いてPhalcon
モジュールの左側にあるスイッチをオンにして保存するだけです。
ユーザーが手動でモジュール構成を開くまたは変更することもでき、以下は詳細な手順です:
手順1:構成ファイルを見つける
まず、対応するPHPバージョンのconf.d
ディレクトリを見つけます。例えば、PHP 8.3用のPhalconモジュールを有効化するには、以下のファイルを編集する必要があります:
/Applications/ServBay/etc/php/8.3/conf.d/phalcon.ini
手順2:構成ファイルを編集
phalcon.ini
ファイルを開き、以下の内容のコメントを外します:
[Phalcon]
; Uncomment the following line to enable Phalcon
extension = phalcon.so
2
3
手順3:PSRモジュールの有効化(PHP 7.2~PHP 7.4のみ適用)
PHP 7.2からPHP 7.4のバージョンについては、追加でPSRモジュールも読み込む必要があります(ServBayに含まれています):
; Uncomment both Psr & Phalcon to enable Phalcon
[Psr]
extension = psr.so
[Phalcon]
extension = phalcon.so
2
3
4
5
手順4:PHPサービスを再起動
ServBayのサービス管理パネルで、該当するPHPサービスを再起動します。例えばPHP 8.3のサービスを再起動します。再起動が完了すると、Phalconモジュールが正常に読み込まれます。
Phalconモジュールが正常に読み込まれたかを確認
簡単なPHPファイルを作成してPhalconモジュールが正常に読み込まれたかを確認できます。Webサーバのルートディレクトリにphpinfo.php
ファイルを作成し、以下の内容を記述します:
<?php
phpinfo();
?>
2
3
https://servbay.host/phpinfo.php
にアクセスし、出力されるPHP情報ページでPhalconモジュールの関連情報を探します。Phalconに関連する情報が表示されていれば、モジュールは正常に読み込まれています。
使用例
Phalconモジュールが有効になると、PHPコード内でPhalconフレームワークを使ってWeb開発ができます。以下はPhalconを使って基本的なWebアプリケーションを作成する方法の簡単な例です:
サンプルコード
- プロジェクトディレクトリ構造を作成
phalcon
├── app
│ ├── controllers
│ │ └── IndexController.php
│ └── views
│ └── index
│ └── index.phtml
└── public
└── index.php
2
3
4
5
6
7
8
9
- フロントコントローラー:public/index.php
<?php
use Phalcon\Autoload\Loader;
use Phalcon\Di\FactoryDefault;
use Phalcon\Mvc\View;
use Phalcon\Mvc\Url;
use Phalcon\Mvc\Application;
define('BASE_PATH', dirname(__DIR__ . '/../../'));
define('APP_PATH', BASE_PATH . '/app');
$loader = new Loader();
$loader->setDirectories(
[
APP_PATH . '/controllers/',
APP_PATH . '/models/',
]
);
$loader->register();
$container = new FactoryDefault();
$container->set(
'view',
function () {
$view = new View();
$view->setViewsDir(APP_PATH . '/views/');
return $view;
}
);
$container->set(
'url',
function () {
$url = new Url();
$url->setBaseUri('/');
return $url;
}
);
$application = new Application($container);
try {
// Handle the request
$response = $application->handle(
$_SERVER["REQUEST_URI"]
);
$response->send();
} catch (\Exception $e) {
echo 'Exception: ', $e->getMessage();
}
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
53
54
55
- コントローラー:app/controllers/IndexController.php
<?php
use Phalcon\Mvc\Controller;
use Phalcon\Support\Version;
class IndexController extends Controller
{
public function indexAction()
{
// Phalconバージョン番号を取得
$phalconVersion = new Version();
// バージョン番号をビューに渡す
$this->view->phalconVersion = $phalconVersion->get();
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
- ビュー:app/views/index/index.phtml
<!DOCTYPE html>
<html>
<head>
<title>Hello ServBay</title>
</head>
<body>
<h1>Hello ServBay!</h1>
<p>Phalcon Version: <?= $phalconVersion ?></p>
</body>
</html>
2
3
4
5
6
7
8
9
10
結論
ServBayは、簡単な設定と再起動操作によって、Phalconモジュールを効率的に管理および有効化する便利な方法を提供しています。開発者は、さまざまなPHPバージョンで迅速にPhalconモジュールを有効化し、その高性能と豊富な機能を活用することで、Webアプリケーションの開発効率を向上させることができます。Phalconの高性能、低オーバーヘッド、および豊富な機能は、効率的かつ拡張可能なWebアプリケーションを構築するための最適な選択肢となっています。