2012-07-02 61 views
0

我的工作在網站上,我想添加某種答疑係統一樣的#1。Question2Answer類型編碼所

我下載了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的格式重寫我的所有網站可能是一個好主意?

回答

0

號你應該將其與適當的架構和可讀的代碼編寫,和你貼是clusterfuckmess。試用超過9000種免費PHP框架,如Symfony2Yii

+0

好的謝謝了很多,我會看看到Yii的,它看起來有趣。 –

1

我與Q2A合作一點,我可以告訴你的架構實際上是不是太糟糕。它遵循MVC(將輸出控制中的程序邏輯與數據邏輯分開)。

如果你想爲它命名,我把它叫做「程序式」,而不是面向對象的風格。有一些使用的類(例如HTML輸出類),但它主要是一堆函數,分成不同的文件。

+0

如果它的程序比它不是MVC ...「M」(模型)依賴於OOP – Lusitanian

+0

@David是怎麼回事?這是關於分離3個問題。如果所有的數據訪問都是完全分開的,並且函數返回某種數據結構(數組,對象等),那麼它就是一個「模型」。 (注意:使用類不會立即產生「OOP」:http://blog.ircmaxell.com/2012/07/oop-vs-procedural-code.html) – DisgruntledGoat

+0

顯然,使用類不會產生OOP。 MVC並非僅僅關注關注點的分離......這就是(關鍵字)關注點的分離。雖然MVC是一種設計模式,並且可以在理論上以程序模式實現,但我希望在同意之前在實踐中看到它的正確實施。 – Lusitanian