STERFIELD

Symfony2、lithiumとZendのコンポーネントを使った簡単なフレームワーク

Symfony2、lithiumとZendのコンポーネントを使った簡単なフレームワーク

最近Symfony2の勉強をしてまして、
Symfony2のコンポーネントがスタンドアローンということで、簡単なサイトでも使えそうです。
調べてみたら、他のPHPのフレームワークでもスタンドアローンのコンポーネントが多いのようです。
今回は、Symfony2のClassLoaderとHttpFoundation、lithiumのRouter、ZendのLogコンポーネントを使って、
簡単なフレームワークを作ってみました。

●機能
・DB連動(sqlite使用)
・ルーティングが設定できる
・ログ出力

●フォルダ構造
.htaccess
index.php
bootstrap.php
routing.php
controllers.php
vendors
lithium
Pimple※
Symfony
zf2
data
setupDb.php

sensiolabs社(symfonyを作った会社)製簡単なDIC(Dependency Injection Container)
http://pimple.sensiolabs.org/

http://itpro.nikkeibp.co.jp/article/COLUMN/20060628/241982/

●DB初期化
data/setupDb.phpを使ってDB初期化をする

●apache設定
front controllerを使うには、apacheのrewrite engineをONにすることが必要
.htaccess

●front controller→小さいPHPファイル
index.php

●bootstrap
bootstrap.php

●routing設定
routing.php

●controller設定
controllers.php

●サービスの拡張について
これから、新しいページを作りたい場合は、
面倒なURL判断が一切心配なく、
routing.phpにroutingの設定を行ってから、controllers.phpにcontroller関数を追加

たとえば、contents_detailを追加したい場合は、
まずrouting.phpに
$c[‘router’]->connect(‘/content_detail/{:id}’, array(‘controller’ => ‘content_detail’, ‘id’ => null));を追加してから、
controllers.phpに
content_detailという関数を追加

すればいいです
(もちろん、templateが必要な場合は適当viewer追加)。

Author Profile

著者近影

スターフィールド編集部

SHARE

合わせて読みたい