[初心者向け]PHPフレームワーク学習用教材を開発しました。その名もYukiwikimini On Ethna

PHPプログラマの皆さんこんにちわ。
フレームワーク使いこなしてますか?

このたび、フレームワーク初心者のために簡単なサンプルアプリケーションを作ったので公開します。

名付けて、Yukiwikimini On Ethna


(YukiwikiminiをEthna上で動くPHPアプリとして移植しただけです)

フレームワーク学習の役に立てていただければ幸いです。
もしあなたが中級・上級プログラマなら、新人教育などにどうぞお使いください。

勉強法

  • ソースコードをgit cloneして動かしてみましょう。
  • アプリの挙動を把握したら、ソースコードを読んでみましょう。(コードはこちら)

いろいろ改良してみるのもいいと思います。
例えば、今の実装ではWikiコンテンツをdatabaseディレクトリに1記事1ファイルとして保存しています
これをSQLiteなどのRDBMSや、MemcachedなどのKey/Valueストアに置き換えてみるというのはどうでしょう。

他の課題としては、Ajax化する、モバイル版を作ってみる、なども題材としては面白いでしょう。

ポイント

  • コードの重複をさける
  • ロジックをアクションクラスやビュークラスにべた書きしない
  • 省略できるとこは省略する

コードの重複をさける
これは基本中の基本です。
Ethnaでは、ActionFormのform_templateやAppManagerなどをうまく使うことで、コードの重複を避けることができます。


ロジックをアクションクラスやビュークラスにべた書きしない
アクションクラスはMVCでいうコントローラにあたります。
ここにロジックをだらだら書くのはおすすめできません。
AppManager(このサンプルの場合ではWiki_PageManager)などにロジックを書いて、アクションやビューからはそれを呼び出すだけにしましょう。


省略できるとこは省略する
意外と知られてないのですが、Ethnaではいろいろ省略できるものがあります。
  • フォーム値のバリデーションを必要としない場合は、フォームクラスそのものを省略できます。(例:Indexフォームクラスを省略)
  • 画面がない場合は、ビューやテンプレート(tpl)は必要ありません。(例:Writeビューを省略)
  • ビューがあるからといって、同名のアクションクラスは必須ではありません。(例:Errorアクションを省略)
上手に「省略する」ことで、コンパクトで見通しの良いアプリケーションを作ることができます。

参考

きっかけ

これを作ったきっかけ
http://sourceforge.jp/ticket/browse.php?group_id=1343&tid=15931

その他

突っ込み、指摘、勝手に添削、などなどご自由にどうぞ。
カテゴリ: