1

最近、簡単なWebアプリケーションを作成しました。私は現在持っています。

  • HTMLマークアップと必要なリソースを提供する静的ページ
  • サーバーと通信し、クライアントで応答をレンダリングするjavascriptルーティング処理メカニズム。

/app/object.php操作する必要のあるオブジェクトごとに、サーバーはPOSTデータを受け入れてJSONの結果を返すphpスクリプトを提供します。

例(実際の応答ではありません):

POST /app/comments.php?a=add&page_id=43&author=A&text=Some%20Text
{"s":"OK"}

POST /app/comments.php?a=list&page_id=43
[{ "author": 'A', "text": "Some text"}, { "author": "B", "text": "Other text"}]

POST /app/users.php?a=list
["A", "B", "C"]

内部的には、JSONAPIは次のように実装されます。

//comments.php
require('init.php'); 
// start sessions, open database connections with data in config.php

switch(POST('a')){
case "list":
    //.... retrieving data
    echo json_encode($data)
break;
case "add":
    //.... inserting data
    echo '{"s":"OK"}';
break;
}

最大のオブジェクトには7つのメソッドと200の(十分にインデントされた、圧縮されていない)LOCがありますが、平均はオブジェクトごとに約3つのメソッドです。

私の開発者の友人は、スイッチをオブジェクトに置き換えて、「よりシンプル」、「より拡張可能」、「より保守しやすい」ものにすることを提案しています。

率直に言って、そのようなシステムが(特にオブジェクトを使用することによって)どのように単純化できるかはわかりませんが、他の開発者の意見を知りたいと思います。

PHPでオブジェクトを使用することによるパフォーマンスへの影響を無視して、クラスベースのアプローチを使用する必要がありますか?

はいの場合、コードを追加しすぎずに(したがって、プロジェクトの保守性を低下させることなく)、オブジェクトを使用するためにJSON APIを構造化するにはどうすればよいですか?

4

1 に答える 1

4
<?php

class Controller {
  protected $post;
  public function __construct() {
     $this->post = $post;
  }
  public function __call($name, $arguments) {
    if(!method_exists($this, $name)) {
      die("Unknown action!");
    }
  }
  public function whatever() {
    echo json_encode($this->post['page_id']);
  }
  public function data() {
    echo '{"s":"OK"}';
  }
  // new action? just add another method
}


$controller = new Controller();
$controller->{$_POST('a')}(); // example 1

$controller->data(); // you can't do it using switch
  1. 新しいメソッドを簡単に追加
  2. メンテナンスが簡単
  3. いつでもメソッドを起動できます
  4. コードは整頓されています
  5. それは本当に一般的な習慣です
于 2012-09-01T16:42:14.783 に答える