<< Prev Page Next Page >>

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


プログラムコードとURLの関係

さて、構想中のフレームワークだけど、悩ましいこととして各ページのURLをどんなふうにするかっていうのがある。
mod_rewriteを使うって決めたのでURLのデザインもしなきゃいけない。
ここで考慮したいのが

開発のしやすさ

ロジック部分(PHPとかrubyとか)とHTMLテンプレート、JavaScript、CSSはフォルダツリー上でできるだけすぐ近くにあったほうがいい

引数をURLに渡せるように

やっぱSEO的なことを考えると、たとえば商品IDみたいなものを?以降に置かずにパスに含めてしまいたい

開発のしやすさ2

小さいアプリなら一つのファイルで作れて、大きくなってもファイルを問題なく増やしていけるのがいい。だからviewごとにファイルが違うのとかはナシ。

といったところ。そこでこんなURLデザインにしてみた。
(ルートのURL)/(モジュール名)/(クラス名小文字)_(メソッド名)[-(引数1)[-(引数2)[...]]].(拡張子)

そして、実ディレクトリ構成は

(ルートディレクトリ)/
(モジュール名)/
.code/
(クラス名).phpとか(クラス名).rbとか
js/
(JavaScriptファイル)
css/
(CSSファイル)
images/
(画像ファイル)
(テンプレート).html
もちろんモジュールはいくつでも追加できる。

こうすると何が嬉しいかって、テンプレートのHTMLファイルから相対パスでjsとかcssとか画像ファイルを指定しておけば普通にDreamWeaverとかで編集できるってこと。(ま、最初のうちだけでも。).NETとかは当たり前にこういうフォルダ構成になってるんだけどね。

あと、拡張子としては.htmlと.jsonと.csvをサポートする。これちょっと新しい。
例えば
hostname/users/index_list-2.html
っていうURLだと、
ファイル:users/.code/Index.php
クラス:UsersIndex
メソッド:list_html(2)
が実行されて、返値のテンプレートファイル名をSmartyに渡してHTML出力するし、

hostname/users/download_list-2-3.csv
っていうURLだと、
ファイル:users/.code/Download.php
クラス:UsersDownload
メソッド:list_csv(array(2, 3))
が実行されて、返値の二重配列をCSVとして出力する。

hostname/users/process-user.json
っていうURLだと、
ファイル:users/.code/Process.php
クラス:UsersProcess
メソッド:user_json()
が実行されて、setResult()で指定した配列をJSONとして出力する。


え、静的なhtmlを置きたい?…う~ん、mod_rewriteを防ぐために拡張子を.htmにする…のかな。なんだかなあ。


この記事に対するコメント

この記事に対するコメントの投稿



管理者にだけ表示を許可する

この記事に対するトラックバック

トラックバックURL
http://tockri.blog78.fc2.com/tb.php/99-20a049bf
この記事にトラックバックする(FC2ブログユーザー)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。