2011-07-20 4 views
0

私はPHP 5.3の簡単な問題のためのきれいなアプローチを見つけようとしています。簡単な問題のためのPHP clean(mvc)アーキテクチャ

私は実装上の問題がありません。クリーンなソリューションを設定するための最良の方法を考えています。私は、パブリックAPIからデータを要求

  • は、ここに私のプロジェクトです。

  • データはJSONです。私はJSONレスポンスをPHPオブジェクトに変換します
  • phpオブジェクトを反復処理して生データとマップデータの両方を表示するビュー(テンプレートエンジン)に渡します。

これは、コードの私の現在の状態です:私はすべてのクラスと設定が必要になるのindex.phpで

。私はオートローディングクラスを書くことができましたが、私が必要とするすべてのクラスが常に使用されているので、これは全く意味がないと思います。

私の設定ファイルを読んで、そこからOptionsオブジェクトを作成します。

また、オプションオブジェクトがコンストラクタインジェクションを介して渡されるRequestオブジェクトも作成されます。

このオブジェクトでは、APIへの実際のリクエストを実行し、JSONを取得します。 リクエストオブジェクトのJSONレスポンスを変換する必要がありますか?変換は実際のリクエストとは関係がないため、このタスクを実行するヘルパークラスを記述する必要がありますか?

まだindex.phpにあります。必要なViewオブジェクトを作成し、Viewが渡されるControllerオブジェクトを作成し、そのindexActionを呼び出します。

A.クラス

AA.Controller

AAA:

マイフォルダ構造は次のようになります。 IndexController.php

AA。サービス

AAA Service.php

AA。 Options.php

AA。 Request.php

A.コンフィグレーション

AA。だから、

index.phpのconfig.phpを

A.、どのように私の可能なクリーンなソリューションのセットアップ私のプロジェクトのですか?

モデルがないので、MVCのように「M」の部分がありません。私は対処するきれいな方法がわからない、これらの2〜3クラスしか持っていません。

オプションとリクエストは、それぞれ独自のクラスであるか、単にサービスの方法であるべきですか?

サービスを完全に削除し、本当にサービス層ではないので、ヘルパークラスを作成する必要がありますか?現在、私は、私はあなたたち

答えて

1

私は、これはオーバーエンジニアリングの匂い言うからのお便りを楽しみにしていますサービス

に固定値に生のデータからいくつかのマッピングを行います。すべてを行う必要がある:へ

  • コールを

    1. がAPIにHTTP要求します(CURLを含む数行のコードを、または多分あなたもPHPのURLラッパを使用して、file_get_contents()でそれを行うことができます) json_decode()
    2. あなたの場所でテンプレートエンジンを持っていると仮定すると、
    3. は、クライアント

    すべてのすべてでにテンプレートエンジンの出力をエコーJSONデータを使用してテンプレートエンジンを起動し、それがshoulたぶん20行以上は要りません。

  • +0

    もちろん、私は20行で書くことができました。しかし、私は実際に自分のアーキテクチャーのスキルを向上させようとしています。本当に簡単なプロジェクトから始めればいいと思いました。 – Michael

    +1

    最も重要なアーキテクチャのスキルは "Keep It Simple、Stupid"です。必要になったときに複雑さを処理するために、いつでもコードをリファクタリングすることができます。 – tdammers

    +1

    ええ、あなたは完全に狂ったことをすることによって、建築技術を向上させることはできません。それは常に現実に反して測定します。あなたが理解できない場合、あなたはスキルを全く増やさないでしょう。 – hakre

    関連する問題