0

私はウェブサイトで作業していて、Stackoverflowのようなある種の質問応答システムを追加したいと思います。

私はquestion2answerをダウンロードしましたが、それは完全に機能しますが、それがどのようにコーディングされているかを見ると、全体が理解できません。それは純粋に多くの関数を備えたphpであり、HTMLに出くわしませんでした。それがどのように書かれているかを調べてみると、面白いと思います。すべてがどのように機能するかについてもっと知りたいのですが、それが何と呼ばれているのかわかりません(名前がある場合)。私がそれについてもう少し学ぶことができるチュートリアルを誰かが知っていますか?

私は自分のウェブサイトにquestion2answerを使用することを期待していません。システムがどのように機能するかを理解するためにそれを使用しただけで、最終的にはこのシステムを自分で作成したいと思います。

それが役立つ場合、コードは次のようになります:

require_once QA_INCLUDE_DIR.'qa-db-selects.php';
require_once QA_INCLUDE_DIR.'qa-app-format.php';
require_once QA_INCLUDE_DIR.'qa-app-updates.php';

//  Determine whether path begins with qa or not (question and answer listing can be accessed either way)

$requestparts=explode('/', qa_request());
$explicitqa=(strtolower($requestparts[0])=='qa');

if ($explicitqa)
    $slugs=array_slice($requestparts, 1);
elseif (strlen($requestparts[0]))
    $slugs=$requestparts;
else
    $slugs=array();

$countslugs=count($slugs);


//  Get list of questions, other bits of information that might be useful

$userid=qa_get_logged_in_userid();

@list($questions1, $questions2, $categories, $categoryid, $favorite, $custompage)=qa_db_select_with_pending(
    qa_db_qs_selectspec($userid, 'created', 0, $slugs, null, false, false, qa_opt_if_loaded('page_size_activity')),
    qa_db_recent_a_qs_selectspec($userid, 0, $slugs),
    qa_db_category_nav_selectspec($slugs, false, false, true),
    $countslugs ? qa_db_slugs_to_category_id_selectspec($slugs) : null,
    ($countslugs && isset($userid)) ? qa_db_is_favorite_selectspec($userid, QA_ENTITY_CATEGORY, $slugs) : null,
    (($countslugs==1) && !$explicitqa) ? qa_db_page_full_selectspec($slugs[0], false) : null
);

私のウェブサイトは、主にアクションスポーツ用のソーシャルウェブサイトのようなもので、主にメディア(写真やビデオ)を共有したり質問したりするためのものです。すべてのウェブサイトをquestion2answerと同じ種類の形式に書き直すのは良い考えだと思いますか?

4

2 に答える 2

1

私は Q2A で少し作業しましたが、実際のアーキテクチャはそれほど悪くないと言えます。これは MVC によく従います (プログラム ロジックとデータ ロジックを出力制御から分離します)。

名前が必要な場合は、オブジェクト指向スタイルではなく「手続き型」と呼びます。いくつかのクラス (HTML 出力クラスなど) が使用されていますが、ほとんどの場合、さまざまなファイルに分割された一連の関数です。

于 2012-07-19T16:59:46.723 に答える