【问题标题】:how to declare all your includes in one file that will be loaded in all project in PHP如何在一个文件中声明所有包含,该文件将在 PHP 中的所有项目中加载
【发布时间】:2011-01-15 03:33:18
【问题描述】:

我正在做一个项目,但是我厌倦了在每个页面中加载所有库

我的项目目录是这样的

|---x (( PHP PAGES ))
  |--- x1.php (( PHP FILE ))
  |--- x2.php (( PHP FILE ))
|---y (( PHP PAGES ))
  |--- y1.php (( PHP FILE ))
  |--- y2.php (( PHP FILE ))
|---includes (( LIBRARIES ))
a.php (( PHP FILE ))
b.php (( PHP FILE ))
c.php (( PHP FILE ))

我试图将我的所有库加载到一个文件中并将该文件加载到所有页面中,但问题来自目录,例如在 x1.php 中加载库将是这样的“../include/ ”,但在 a.php 中加载只需要“include/” 我知道有一种方法可以到达“includes”目录,无论请求来自哪里,但我不知道如何做到这一点。

谢谢

【问题讨论】:

    标签: php include load require


    【解决方案1】:

    您的问题的答案是设置include_path。默认情况下,PHP 会在与调用文件相同的目录中查找包含的文件,但如果您设置了 include_path,它会改为查找那里。

    但是,从长远来看,类自动加载和 __autoload() 函数会更好,所以请选择 e4c5 的答案。

    【讨论】:

      【解决方案2】:

      将每个文件都加载为包含文件会增加不必要的膨胀并可能会降低您的网站速度。你可以尝试的是类自动加载:http://www.php.net/manual/en/language.oop5.autoload.php

      它消除了将包含分散到各处的需要,但只会包含您真正需要的文件。

      【讨论】:

      • 非常感谢。如果我在包含/functions.php 中的functions.php 中使用它,我应该加载我的库,如“/includes”或“../includes”吗?这仍然取决于请求脚本吗?
      • 即使是最有经验的 php 程序员也会对是否使用 './filename' 或 '../filename' 感到困惑,特别是当两个文件可能有共同的包含时。克服这个问题的最好方法是将你的东西放在包含路径上的目录中 - 或者将包含路径更改为指向文件所在的目录。你也可以考虑使用 include_once() 或 require_once() 而不是 include() 或 require()
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-22
      • 2020-06-20
      • 1970-01-01
      • 2021-01-05
      • 2021-04-18
      • 2010-10-10
      • 2013-03-29
      相关资源
      最近更新 更多