0

私は約30の個別のユーティリティで構成される内部Webサイトを開発しています(さらに将来的に追加される予定です)。私はLaravelでこれをやろうとしています。これを行うためのベストプラクティスは何でしょうか?

このウェブサイトのいくつかの特徴は次のとおりです。

  • 一部のユーティリティは、個々のアプリケーションと見なすのに十分な大きさです
  • 一部は非常に小さく、ユーザーの操作なしで静的データを表示しますが、データベースの操作はあります
  • ユーザーとの対話の結果として動的なコンテンツを表示するものもあります
  • 一部はCRUDユーティリティです
  • 各ユーティリティには独自の権限があり、各ユーザーには異なる権限のセットがあります
  • 1回のログインで、ユーザーは使用が許可されているユーティリティにアクセスできる必要があります。
  • 各ユーティリティは、異なるデータベース内の異なるテーブルと相互作用します。それらには、いくつかのテーブルが共通して使用されていますが、それはまれなケースです。

現在、ユーティリティごとに個別のコントローラー、モデル、ビューがあるため、MVCパターンが役に立たなくなります。各ユーティリティをバンドルとして作成することを考えましたが、DRYnessに違反しています(コードの一部を繰り返す必要があります)。

このウェブサイトを構築するための最良の方法は何ですか?

4

1 に答える 1

0

すべてを1つのモノリシックアプリケーションにまとめることは当面は問題ないかもしれませんが、将来的にはいくつかの課題が生じる可能性があります。これは、個々のアプリケーションを個別にリリースできることと関係があります。

私があなたが持っているものを一から設計する場合、私は次のようなものを見ているでしょう:

  1. 基本フレームワーク。おそらく、すべてのアプリケーションに共通するコンポーネントが追加された既存のフレームワークを拡張したものです。このフレームワークはそれ自体でバージョン管理する必要があり、各アプリケーションにリンクされます(svnexternalのようなものを使用)。各アプリケーションは、変更によって1つ以上のアプリケーションが中断した場合に備えて、使用しているフレームワークのバージョンを選択できます。

  2. シングルサインオン。既存のLDAPサーバー、ドメインコントローラー、Googleアプリがある場合は、それを任意のアプリケーションの基本認証に使用します。

  3. すべてのアプリケーションが同じデータベースまたはデータストアにアクセスできます。

  4. アクセス許可の制御を一元化できる場合がありますが、状況によって異なります。これはかなり扱いにくいかもしれませんが、同時に、アクセス許可を処理するための1つの場所を提供します。たぶん、各アプリが必要な権限を公開できるようにします。

于 2013-02-21T18:22:11.263 に答える