【问题标题】:Generating Navigation for different user types, MVC, PHP为不同的用户类型、MVC、PHP 生成导航
【发布时间】:2012-08-03 17:49:47
【问题描述】:

我的想法是生成一个依赖于用户角色的用户链接数组。

用户可以是学生或管理员。

我想到的是使用foreach 循环来生成仅对某些用户可用的链接列表。

我的问题是,我创建了一个名为 Navigation 的帮助程序类,但我非常确定我不能在其中对链接进行硬编码,而是希望该帮助程序类只读取从某个地方发送的对象,并且然后将所需的导航数组返回到页面。

跟进问题,您认为我应该将仅对学生和管理员可用的链接保留在哪里。我应该将它们保存在文本文件中吗?

或者如果可以创建一个传递链接数组的控制器,例如 nav_controller 类 -> studentLinks(){} 中的一个方法,它将向帮助程序类发送链接数组,然后帮助程序类将其发送到视图..

对不起,如果我解释得太疯狂了。有相关资源吗?

【问题讨论】:

    标签: model-view-controller navigation role-based


    【解决方案1】:

    从您的描述看来,您正在构建一些与教育相关的系统。以这种方式创建实现是有意义的,以便您以后可以扩展项目。期望稍后添加“讲师”作为角色似乎是合理的。

    再说一遍.. 我不确定您对 MVC 设计模式的了解有多广。

    也就是说,在这种情况下,我会考虑两种方法来解决这个问题:

    1. View 从模型层请求当前用户的状态,并根据响应请求额外的数据。然后视图使用管理员或用户模板并创建响应。

      您可以对模板中的特定导航项进行硬编码,从中构建响应,或者可用导航项的亮度可以作为您从模型层请求的附加信息的一部分。

      这种方法的缺点是,每次您需要添加另一个组时,您将不得不重写一些(如果不是全部)视图类。

    2. 将模型层的结构包装在一个包含对象中(this post 中提供的实现基础),这可以让您限制返回的数据。

      使用这种方法时,views away 会从模型层请求所有可用信息,但其中一些会返回null,在这种情况下不会应用模板。为了实现这一点,可用导航项的列表必须由模型层提供。

    P.S. 您可能已经从这个描述中注意到,视图不是模板,模型不是类。

    【讨论】:

    • 我超级喜欢你在里面的帖子,而且你肯定对mvc有很深的了解。非常感谢,我想我真的需要一位老师来教这个,因为我认为我走错了路。请指导我。
    • 我建议您从 OOP 的一些高级研究开始。尝试观看this post 中列出的讲座。至于 MVC 本身,您可以从阅读 this article 开始,也许还可以阅读 this post。同时咨询php chat room的人。
    【解决方案2】:

    这实际上取决于您已经在使用什么以及您的项目规模。如果您使用的是数据库 - 将其粘贴在那里。如果您使用 xml/json/yaml/whatever - 将其存储在具有相应格式的文件中。如果您两者都没有 - 对其进行硬编码。我的意思是——避免使用多种技术来存储数据。此外,如果链接不会经常更新并且用户将无法自定义它们,我会对其进行硬编码。如果应用程序大部分是静态的,那么为了动态而创建非常复杂的东西是没有意义的。

    请注意,这个问题不太适合 stackoverflow。 programmers.stackexchange.com 可能更合适

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      相关资源
      最近更新 更多