PHP 最佳实践 : Im loading the $GLOBALS array with a lot of information to be shared between my php pages

标签 php mysql model-view-controller

我的问题是关于我正在做的事情是否正确,或者它是否会导致安全/性能问题。

我使用 $GLOBALS 数组,并用数据库中的大量值填充它,例如(页面标题、用户信息、模板信息...等),以便我的所有 php 文件都可以访问此信息。我遵循 MVC 设计模式,所以这就是我的 View 文件访问模型文件中生成的信息的方式。

如果这不是做事的正确方法,请告诉我为什么,什么是正确的方法。

谢谢

最佳答案

您没有遵循 MVC 模式,您只是使用全局变量在“无共享”架构中的“全部共享”脚本中显示某些内容。

执行输出可能意味着您得到某事的 View ,但通常这不会与 MVC 的术语 View 混用(模型- View - Controller )模式。您所做的,模板化输出 可能是更好的措辞。

If this is not the proper way to do things, please tell me why, and what is the proper way.

如果你想实现 MVC 模式,那么这可能就是你所指的 MVC:

  • 模型:您的文件系统和数据库
  • 查看:您的 HTML 输出 + CSS + JS
  • Controller :您的 PHP 脚本

MVC 只是一种模式。您可以像感觉良好一样实现它。你可以在很多没有实现的东西中找到它。这只是一个模式。

但更准确地说,MVC 模式更常见于它的面向对象实现。您的实现与面向对象的实现完全不同,您使用的是全局状态而不是对象实例。

但是您没有在问题中写下您考虑过实现面向对象的 MVC 模式并且您使用的模板脚本是其中的一部分。

根据要实现的需求,像您那样做是完全正确的。

MVC 只是一种模式。它有利有弊。它有好处,也有后果。这只是一个模式。

特别是如果您担心性能,请不要让事情变得更复杂,例如加载完整的对象树以仅显示 HTML 模板中的一些变量。

关于PHP 最佳实践 : Im loading the $GLOBALS array with a lot of information to be shared between my php pages,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6743831/

相关文章:

php - MYSQL SELECT 查询将输出合并到表上的单行中

mysql - 无法在 macOS Sierra 的终端中运行 MySQL

php - 需要PHP票务系统 源码

ios - 在 iOS 中正确使用 View Controller 和 MVC 模式

php - 创建用户后无法生成 "page_slug"的 URL

php - 带有 php 的 utf-8 格式的 oracle 数据

php - 从表单验证 Controller 上的网站图标

php - 如何拦截Laravel HTTP错误响应

networking - MVC 到 MVVM 与网络 : Architectural appraoch/best practices

java - 什么是最小的 Java Web MVC 框架?