ディレクトリ(ひな形)の準備
Phalconをインストールするとあとは何がしかのコマンドを打てば
プロジェクトのひな形が自動生成されるのかと思ったらそうではないらしい。
一先ずディレクトリ構成は以下のようにしてみた
app/controllers
app/models
app/views
public/css
public/image
public/js
すごくシンプルだが、まだどんな機能があるかわからないし、
必要になったら足せば良いかなと。
だいたい、そんなにいろいろ機能を付けるならPhalconよりも
symphonyやlaravelを使えば良い。
Apacheの準備
ドキュメントルートを上記のpublicに向けておく。
publicは公開用のディレクトリ。
さらにpublicの直下に.htaccessを作成して以下のようにしておく。
これでリクエストを全てindex.phpで受ける事ができる。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]
</IfModule>
#bootstrapの準備
これはチュートリアルのページから拝借してきた。
public直下にindex.phpを作って以下のように書く
<?php
use Phalcon\Loader;
use Phalcon\Mvc\View;
use Phalcon\Mvc\Application;
use Phalcon\Di\FactoryDefault;
use Phalcon\Mvc\Url as UrlProvider;
use Phalcon\Db\Adapter\Pdo\Mysql as DbAdapter;
try {
// オートローダにディレクトリを登録する
$loader = new Loader();
$loader->registerDirs(array(
'../app/controllers/',
'../app/models/'
))->register();
// DIコンテナを作る
$di = new FactoryDefault();
// ビューのコンポーネントの組み立て
$di->set('view', function () {
$view = new View();
$view->setViewsDir('../app/views/');
return $view;
});
// ベースURIを設定して、生成される全てのURIが「phalcon」を含むようにする
$di->set('url', function () {
$url = new UrlProvider();
$url->setBaseUri('/phalcon/');
return $url;
});
// リクエストを処理する
$application = new Application($di);
echo $application->handle()->getContent();
} catch (\Exception $e) {
echo "Exception: ", $e->getMessage();
}
https://docs.phalconphp.com/ja/latest/reference/tutorial.html#id3
のtutorialをphalconに変えています。
テスト
それではブラウザでアクセスしてみる。
「Exception: IndexController handler class cannot be loaded」
という表示が出てきたが、これは想定内。
Phalconではルーティングの設定をしていなければデフォルトのアクションは
IndexController@indexActionとなる。
まだコントローラーは作っていないのでこれは正常動作。