我正在编写一个小型的非商业网络应用程序,我想知道如何将数据从一段代码传递给其他人。具体来说,我想根据具体情况(“您已登录”,“已注销”,“更新状态”等)向用户输出各种消息。 (此时,我没有看到我需要在内存中保留多条消息的情况,但它并不真正相关。)所以我可以使用$_SESSION['message']
变量构建我的代码,或者我可以系统地通过从一个php文件到下一个php文件的class Message
甚至字符串变量的实例。
我不确定是否有令人信服的理由使用一种方法而不是另一种方法。
编辑:我在上面引用的“代码片段”是决定执行哪个函数和显示内容的MVC控制器。然后,它们会重定向到前端控制器,因此实例会更改。然后前控制器加载视图。
答案 0 :(得分:2)
传递Message对象将允许您更改内容的实现方式,而无需调整使用消息的每段代码。直接使用$_SESSION
变量会将您与实施联系起来。
我通常会尽量避免在应用程序的任何位置直接使用$_SESSION
,但核心“启动捆绑”过程除外。它是一个全局变量,而且本质上通常都是邪恶的。
答案 1 :(得分:2)
你所描述的不是依赖注入模型,它是一个Singleton模型(如同,传递一个类的单个实例)。依赖注入是指为每个特定的对象/函数传递需要,这意味着如果您的用户具有身份验证功能,则需要数据库连接,用户和密码。所以你的代码可能如下所示:
function auth($db_conn, $user, $pass) {
在您的情况下,为了向用户显示消息,我将使用会话方法。
答案 2 :(得分:2)
这个问题对我来说没什么意义。
如果您正在谈论不同的PHP实例(例如,如果您在成功登录后进行了重定向),那么您可以选择会话。
如果您谈论在同一PHP脚本实例中的代码片段之间传递消息,则根本不会使用会话。