【问题标题】:How to structure a PHP app to prevent including a library more than once?如何构建 PHP 应用程序以防止多次包含库?
【发布时间】:2015-02-21 22:35:04
【问题描述】:

最近遇到一个具体的问题,就是两次包含一个文件(实际上是一堆文件两次),但是由于系统的复杂性,我还没有找到解决问题的方法,我已经创建的。下面是我的文件系统的草图。

http://flockdraw.com/gallery/view/1976405

你看,我的主文件是connection.php(建立数据库连接的地方),其中包括constants.php。然后我有两个包含连接的文件(并且真正扩展了类,因为这两个文件具有不同的数据库和用途):database.php(用户数据库的数据库操作)和 uni_database(我正在使用的另一个数据库的数据库操作)。这两个文件分别由 session.php(使用 database.php 类的函数)和 uni_class(使用 uni_database 类的函数)分别使用。

我必须将这两个文件(uni_class 和 session.php)包含到我的几乎任何其他页面中,但是当我这样做时,我包含常量和连接两次,这会导致错误。

我有一个解决方案,只使用一个到数据库的连接,一个用于数据库操作(查询)的文件,但是我再次将 uni_class 和 session 类放在一个文件中似乎不合逻辑。

【问题讨论】:

  • 使用include_once或require_once,查看手册。
  • 使用自动加载器,例如SPL_Autoload
  • 您可以使用 'function_exists' 或检查常量的定义来确定文件是否已被包含。
  • 我建议对这个问题进行编辑,以将标签数量减少到对问题的具体情况有意义的集合。

标签: php include


【解决方案1】:

使用自动加载器可能是最好的解决方案。虽然您也可以使用 require_once 或 include_once,因为它们是 PHP 的内置函数,可以满足您的需求。

【讨论】:

  • 谢谢,我已经添加了 include_once 语句。
猜你喜欢
  • 1970-01-01
  • 2012-01-19
  • 2012-08-10
  • 1970-01-01
  • 2013-02-13
  • 2019-06-06
  • 1970-01-01
  • 2015-02-13
  • 2015-01-29
相关资源
最近更新 更多