Posts tagged mvc
[iPhone] Core Data を使ってみる
1iPhone 3.0 から Core Data が使えるようになりました。Core Data は MVC アーキテクチャの Model を補完するものです。iPhone 3.0 以前は SQLite などを使用していたのを Core Data を使って SQL を書くことなくできることになります。
Core Data の利点
Core Data を使った時の利点として SQL を書く必要がないこと以外に、アップルの資料によると以下の利点があります。
(続きを読む…)
需要の高いWeb開発に関する10のスキル
1最低でも1つは極めたい、需要の高いWeb開発に関する10の技術:phpspot開発日誌
1. MVC等、各種フレームワークの知識
2. JavaScript、Flashを使ったウィジェット作成の技術
3. 独自のCMSテーマを作成する技術
4. CMSのカスタマイズやプラグイン作成を行える技術
5. PSDファイルをXHTMLに変換する技術
6. JavaScript開発技術、JavaScriptプラグインの作成技術
7. Facebook/Myspaceアプリの作成技術
8. iPhoneアプリケーション作成技術
9. Eコマースの導入技術
10. Flash&ActionScriptの技術
CakePHP で作成された CMS
0MOONGIFT: ? CakePHPを使ってCMS「Wildflower」:オープンソースを毎日紹介
MOONGIFT さんで紹介されていた CakePHP で作成された CMS の Wildflower をダウンロードしてみて、色々見てみましたし。
[symfony] askeet 3日目
03日目をやってみてどうもバージョンの違いのためかチュートリアルに書かれている内容と実際にいじっているコードで違いが結構あるのに気がついた。そこで今回から違う点についても少し書いておきます。(askeet の symfony のバージョンは 1.0 、実際にいじっている symfony のバージョンは 1.1 です。)
MVC モデル
MVC の各ファイルの場所
- モデル
- askeet/lib/model/
- ビュー
- askeet/apps/frontend/modules/question/templates/
- コントローラ
- askeet/apps/frontend/modules/question/actions/
PHP を勉強するのにオススメ書籍の10冊
1これから PHP を覚える人、もっと技術を向上させたい人にオススメの本を10冊ピックアップしてみました。
逆にこれはオススメ!という本があればコメントで教えてください。
順番はとくにオススメの順ではありません。気になったところから読んでみるのがよいかと思います。
(続きを読む…)
CakePHP コントローラに処理を書かずにモデルにメソッドを追加しよう!
2CakePHP だけではなくフレームワーク全般に当てはまることだと思います。
Fat models and how they change how you use the Model class – cakebaker
私もフレームワークを使い始めた当初はそうだったのですが、モデルに最初からあるメソッドだけを使用してコントローラでなんでもかんでもやってしまっていました。
そうではなく、もっとモデルにオリジナルのメソッドを追加して、コントローラではそれを使用した方がコントローラもすっきりして後から見たときにも何をしているか分かりやすいと思います。
例えばブログの最新エントリ10を find する場合コントローラに
$this->Post->findAll(array('Post.is_published' => true), null, array('Post.published DESC'), 10);
と書くよりも
Postモデル
function findMostRecent($limit = 10) { return $this->findAll(array('Post.is_published' => true), null, array('Post.published DESC'), $limit); }
コントローラ
$this->Post->findMostRecent();
と書いた方がコメントなどなくても何をしているのかが分かりやすくなります。
OpenPNE PHP で作成したプログラムを組み込む
1OpenPNE PHP で作成したプログラムを組み込むときのメモです。
基本的に、/openpne/webapp_ext/ 以下に追加するファイルを置きます。
URLのパターン
OpenPNE の URL は下記のようになります。
- ?m=pc&a=page_hoge_foo
- ?m=pc&a=do_hoge_foo
携帯だと m=ktai とかになりますが、今回はPC のみ考えます。
page_hoge_foo のパターンはページを表示する
do_hoge_foo のパターンはモデルに対して処理を行う
page_hoge_foo でモデルに対して処理を行うこともできるが
MVC の意味がないかも。
?m=pc&a=do_hoge_foo のURL を追加する
/openpne/webapp_ext/modules/pc/do 以下に
hoge_foo.php を作成
hoge_foo.php
class pc_do_hoge_foo extends OpenPNE_Action { function execute($requests) { // ここに処理を書く } }
/openpne/webapp_ext/modules/pc/validate/do 以下に
hoge_foo.ini を作成
例えば ?m=pc&a=do_hoge_foo&id=10&no=20 のように id, no を GET で渡したい場合は
[id] type = "int" required = 1 [no] type = "int" required = 1
のように定義する。
こうしておくと do/hoge_foo.php 内で
$id = $requests["id"];
のようにバリデーションを通して値を取得できる。
?m=pc&a=page_hoge_foo のURL を追加する
/openpne/webapp_ext/modules/pc/page 以下に
hoge_foo.php を作成
hoge_foo.php
class pc_page_hoge_foo extends OpenPNE_Action { function execute($requests) { // ここに処理を書く } }
/openpne/webapp_ext/modules/pc/validate/page 以下に
hoge_foo.ini を作成
中身は do_hoge_foo の場合と同じ。
その他
/openpne/webapp_ext/lib
クラスファイルなどを置きました
自分で作成クラスをインクルードしたいときは /openpne/webapp_ext/lib
からインクルードします。