我应该如何在我的网站上创建访客帐户页面?

时间:2015-06-29 08:57:37

标签: php html yii

在我的网站中,我希望允许用户使用来宾帐户查看某些功能。来宾帐户会看到与普通用户相同的信息,但有些事情会受到限制。

对于这个问题,编程明智的方法是什么?

  1. 我将用户通常拥有的确切页面复制粘贴到不同的.php文件中,例如:guestProfile.php。然后我手动删除客人看到的按钮或信息。

  2. 我在我的观点上添加了一堆检查,例如:

    if(userIsGuest) 
      // then hide info.
    
  3. 另一种解决方案。

  4. 在软件工程方面最具逻辑意义的是什么?请尝试量化您的答案,而不是使用意见。

3 个答案:

答案 0 :(得分:3)

抽象是你的朋友。您应该将您希望包含在输出中的任何子视图传递给您的视图,而不是使用条件填充视图。您的视图不需要知道这些子视图的内部工作方式,您可以根据用户是普通用户还是访客用户来交换它们。

这是一个简单的例子:

class View {
    /** Does some view stuff... */

    public function addSubview($name, Subview $subview) {
        //store subviews to be used in the template
    }
}

/** 
 * Somewhere in a controller far far away...
 */
class GuestController extends Controller {
    /** Does some controllery stuff... */

    public function exec() {
        //..
        //prepare the view
        $this->view->addSubview('toolbar', $guestToolbarSubview);
    }
}

答案 1 :(得分:0)

在这种情况下,最好进行检查(解决方案2)。这适用于DRY(不要重复自己)原则。它可以减少代码冗余,并且不太可能忘记将更改复制到第二版代码中。

答案 2 :(得分:0)

尝试将公共代码保存在单独的php文件中,并在需要的地方包含该文件。