如果您使用的是MVC建立一個用戶配置文件,那會是最好有使用模型或控制器這樣的功能內製定出評論的顯示類型的條件語句:條件語句是否屬於模型或控制器中的一個php mvc?
例如 我有3類
- 評論
- 會員
- 管理員(延伸部件)
一些示例使用的僞代碼,其中功能缺失
選項1
相關的用戶登錄的showComments
函數返回的意見將還給不同的信息類型。
class user {
function isLoggedIn() { //Check if a user is logged in }
function getUserType() { // return user type }
function showComments($id) { //comments code }
}
class admin extends user {
function showComments($id) { //comments code }
}
然後使用控制器內的代碼來確定依賴於登錄的用戶類型顯示?
$profileContent = $user->getOtherContent();
if ($user->isLoggedIn() && $user->getUserType() == "member") {
$member = new member();
$comments = $member->showComments($profileId);
}
elseif ($user->isLoggedIn() && $user->getUserType() == "admin") {
$admin = new admin();
$comments = $admin->showComments($profileId);
}
else
$comments = $user->showComments($profileId);
require 'templates/profile.php';
選項2
由於這是一個自定義的框架,我可以在模型內的所有內容移動到一個功能,並在用戶的一個函數來檢查的註釋類型顯示:
abstract class user {
function isLoggedIn() { //Check if a user is logged in }
function getUserType() { // return user type }
}
class profile {
function showComments($profileId, $user) {
if (User::isLoggedIn() && User::getUserType() == "member") {
$comments = //database query and formatting for member
}
elseif (User::isLoggedIn() && User::getUserType() == "admin") {
$comments = //database query and formatting for admin
}
else
$comments = //database query and formatting for guest
return $comments;
}
}
使用類似的控制器:
$profile = new profile($profileId);
$comments = $profile->showComments();
require 'templates/profile.php';
您是否使用特定的框架?你提到你有一個模型和控制器,但是一個視圖呢? – Kekoa 2012-01-11 18:37:15
哎呦我錯過了那部分,在控制器中的if/else之後需要視圖。評論以「$ comments」的形式傳給它。 – Dan 2012-01-11 18:41:12
對於你所要求的內容沒有規定,所以盡一切可能爲你做。 – hakre 2012-01-11 18:43:58