いまのとろこ実験的にいじっているだけなので、URLがどうだとか、同一ディレクトリにファイルが増えていくとかは、それほど気にすることでもないが、実際のサイト構築を視野にいれると、やはり、URLの階層構造やファイルたちのディレクトリ構造は当然気になるわけである
個人的には以下のような感じで構成できるといいと思っているが・・・
URL:
http://domain/hogehoge/posts/
コントローラの置き場:
・・・/コントローラPath/hogehoge/PostsController.php
要するに、URL階層とコントローラのディレクトリ階層が同じ構成にできると分かりやすいと思うわけhttp://domain/hogehoge/posts/
コントローラの置き場:
・・・/コントローラPath/hogehoge/PostsController.php
これを実現しようとすると以下のような設定が必要
まず、コントローラの置き場所はデフォルトでは、 app/Controller に置かなければならない
これを app/Controller/hogehoge に設定する必要がある
bootstrap.php に以下を追加
App::build(array(
'Controller' => array(ROOT.DS.APP_DIR.DS.'Controller'.DS.'hogehoge'.DS),
));
これだけでは、単にコントローラの置き場所を変えただけにすぎず、さらにURLのルーティングを設定する必要がある'Controller' => array(ROOT.DS.APP_DIR.DS.'Controller'.DS.'hogehoge'.DS),
));
routes.php に以下を追加
Router::connect('/hogehoge/posts/', array('controller' => 'posts', 'action' => 'index'));
Router::connect('/hogehoge/posts/:action', array('controller' => 'posts'));
Router::connect('/hogehoge/posts/:action', array('controller' => 'posts'));
ここまで設定すれば、上記のようにURLとコントローラの階層を合わせることができるわけだ
Viewファイルも同様に階層分けしたければ、bootstrap.phpに同じような設定が必要になる
しかし、階層増やすたびにこんなことやってられないし、そもそもサイトマップ(URL階層)とソースの管理を分かりやすいようにしたかったのに、これでは余計、煩雑になってしまい本末転倒である
そもそも、CakePHP でこのようなことをやること自体がナンセンスで、CakePHPはCakePHPのお作法に従うのが無難だという結論に達したわけである(笑)
0 件のコメント:
コメントを投稿