【问题标题】:Where do I place include_once in a PHP app?我应该将 include_once 放在 PHP 应用程序的什么位置?
【发布时间】:2012-01-10 08:01:13
【问题描述】:

我有一个简单的 PHP 应用程序和一个类,其中包含一些配置设置,如 DB conn 字符串和一些路径。我最好将include_once('config/config.php'); 代码放在哪里?

谢谢

【问题讨论】:

    标签: php configuration


    【解决方案1】:

    有一个名为auto_prepend_file 的PHP 设置可供您使用。将其设置为脚本的引导文件:

    bootstrap.php

    <?php
    /* 
     * bootstrap
     *
     * this file will be always loaded first.
     */
    
    include(__DIR__.'/config/config.php');
    

    然后您可以稍后包含您的应用程序运行所需的所有内容。

    如果您不想使用该 ini 设置,您也可以在所有脚本中只在最顶部包含 bootstrap.php 文件:

    user/profile.php

    <?php
    /*
     * show profile of a user
     */
    require(__DIR__.'/../bootstrap.php'); # bootstrap
    

    在您的应用程序的一开始就有一个中心点通常是个好主意,这通常称为 bootstrap

    【讨论】:

      【解决方案2】:

      我喜欢使用带有一个入口点的前端控制器模式。在这一点上,我创建了一个 Config 类的实例,其中包括 Db config 和其他。

      【讨论】:

      • 嗯,这是最合理的方式。大多数 php 框架也使用它+1
      【解决方案3】:

      在使用其中的任何内容之前,您需要包含文件。

      所以文件的开头通常是一个不错的位置。

      【讨论】:

        【解决方案4】:

        如果你的文件不多,把所有东西都放在同一个源目录中。

        否则,“include”或“inc”是常用名称。通常与“src”和“imgs”并行;在您应用的根目录下。

        但是为什么不像你的例子那样只使用“config”呢?听起来对我来说是一个非常合适的地方:)

        【讨论】:

          【解决方案5】:

          视情况而定。 通常靠近顶部。这是最常用的,但有些情况您只想​​在满足某些设置时才包括在内。

          然后你可以将它包含在你需要的地方,但它不太干净。

          在您的情况下,配置应该包含在最干净的解决方案的顶部。

          另外请注意,您需要先包含它,然后才能使用配置文件中的变量。 这就是为什么包含在文件顶部完成的原因。

          【讨论】:

            【解决方案6】:

            从理论上讲,您可以在 PHP 代码中的任何位置包含文件,前提是您仅在包含后才使用它。

            但是,在实践中,我通常在两个地方看到 include。

            1. 如果只是一个没有功能的普通文件,那么一般放在文件的最前面。这提高了代码的可读性。此外,任何开始阅读您的代码的人都会在外部依赖项的开头知道。

            2. 如果有函数,那么也在函数的开头 - 与上述相同的逻辑。请注意,它包含在函数内部,而不是文件的顶层。这主要是因为其他功能可能不需要它。即使他们这样做了,我认为为每个函数保留单独的包含会使函数更加模块化 - 函数中的所有依赖项。

            【讨论】:

              猜你喜欢
              • 2011-01-03
              • 1970-01-01
              • 2012-03-03
              • 2015-10-19
              • 2011-06-30
              • 2012-07-09
              • 1970-01-01
              • 2012-03-03
              • 2022-01-19
              相关资源
              最近更新 更多