我在一个网站上工作,我想添加一些类似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相同的格式是个好主意吗?
发布于 2012-07-02 23:59:06
不是的。你应该使用适当的架构和可读的代码来编写它,而你发布的内容却是一团糟。试试9000多个免费的PHP框架中的任何一个,比如Symfony2或Yii。
发布于 2012-07-20 00:59:47
我曾经使用过Q2A,我可以告诉你它的架构实际上并不是太差。它很好地遵循MVC (将程序逻辑与数据逻辑从输出控制中分离出来)。
如果你想给它起个名字,我会叫它“过程化风格”,而不是面向对象风格。虽然使用了一些类(例如HTML输出类),但它主要是一组函数,分别放在不同的文件中。
https://stackoverflow.com/questions/11296791
复制相似问题