1

CodeIgniterIon authを使用して小さな Web アプリを開発しています。アプリには 3 種類のユーザーがいます。

  • admin: 追加、すべての一覧表示、アイテムの参照、アイテムの削除。
  • 作成者: 追加、すべてを一覧表示、参照;
  • 通常のユーザー: すべてを一覧表示し、相談します。

(ニュースエントリだと想像してください)

追加、すべての一覧表示、参照、削除、およびそれぞれのビューを作成するNews Controller があります。

ここまでで、コントローラーを次のように整理しました。

コントローラー:

  • 管理者
    • ニュース.php
  • 著者
    • ニュース.php
  • 通常のユーザー
    • ニュース.php
  • 公衆

したがって、ログイン後、ユーザーはそれぞれのニュースコントローラーにリダイレクトAddれます。ViewConsultViewConsult

私を悩ませているのは、それを整理し、ユーザーのタイプに応じてさまざまな権限を与える簡単な方法でなければならないということです。特定のコードを繰り返すことになっていますか?

そしてビュー?ヘッダーはユーザーによって異なります。ユーザーに応じて異なるデータを表示するには、いくつかの if ステートメントで同じヘッダー テンプレートを使用する必要がありますか、それともヘッダーを変更してパックでビューを繰り返す必要がありますか?

ビュー:

  • 管理者
    • header.php
    • add.php
    • view.php
    • list.php
    • delete.php
    • フッター.php
  • 著者
    • header.php
    • add.php
    • view.php
    • list.php
    • フッター.php
  • 通常のユーザー
    • header.php
    • view.php
    • list.php
    • フッター.php

現時点では、とのtemplateフォルダーがheader.phpありますfooter.phpが、ヘッダーが異なるという問題があります。

4

1 に答える 1

2

いいえいいえいいえいいえいいえ。3回目以降は言うまでもなく、(ほぼ)同じことを2回行うと、アラームベルが鳴るはずです。

絶対にいくつかのifステートメントを含む1つのヘッダー/フッタービュー。おそらく、リストや、コードの半分が繰り返される他のすべてのものと同じです。

また、根本的に異なる場合を除いて、3つの異なるニュースコントローラーも使用しないでください。繰り返しになりますが、制御ステートメントを使用してプログラムフローを指示します。とにかく、個々のコントローラー内の適切なアクセスレベルを確認する必要があります。マスターコントローラーで一度だけ実行してリダイレクトしないでください。これらのコントローラーには、URLを介して直接アクセスできます。

ここにコードを入れることはできませんが、問題が発生した場合は、最初から戻ってきてください。また、 DRYソフトウェア開発を採用する方法に関するヒントを得るために、コードレビューhttps://codereview.stackexchange.com/にコードを投稿する価値があるかもしれません。

http://en.wikipedia.org/wiki/Don%27t_repeat_yourself

于 2013-01-07T14:23:30.690 に答える