WebフロントエンドにPHP、データベースにMongoDBを用いたWebプロジェクト(会計ソフト)を企画しています。また、おそらく iPhone と Android 用のモバイル AP、REST API などもあるでしょう。できるだけ多くの共有機能を使用して、生のデータベース (設計パターン MVC または MVP の「モデル」) に中間層を書き込む必要があります。そのようなシナリオで中間層を書くスマートな方法は何ですか?
検討中のオプション:
1) 中間層を PHP ライブラリとして記述します。プラス: PHP フロントエンドへの接続は非常に簡単ですが、他のユースケース (モバイル AP、REST API...) にはあまり適していません。編集:セキュリティと分離にもあまり適していません。
2) 中間層をサーバー側で実行されるコードとして MongoDB サーバー上に記述します。しかし、制限が多すぎて (db.eval() 書き込みロック、1 つのシャードのみ)、この MongoDB 機能の使用は推奨されていないようです。サーバー側のコード実行機能を拡張する MongoDB 拡張機能を探していましたが、見つかりませんでした。
3) PHP、python、Node.js などで中間層を独立した Web サービスとして記述します。私が見る主な問題 - MongoDB は BSON で通信します。多くの中間層関数は、単純な MondoDB クエリを実行します。結果を他のシリアライゼーション標準で再エンコードする必要があるよりも(BSONはMongoDB固有であるため)、結果をクライアントに送信する必要があります-これは私には大きな無駄のようです.
より良い解決策が見つからない限り、おそらくバリアント 1) を使用しますが、アドバイスをいただければ幸いです。