【问题标题】:how to define a php config file that define constant and use it any where in project如何定义一个定义常量并在项目中的任何位置使用它的 php 配置文件
【发布时间】:2012-07-11 07:29:08
【问题描述】:

如何定义一个配置文件,我可以在整个项目的任何地方使用它而不包含每个地方?

【问题讨论】:

    标签: php constants config


    【解决方案1】:

    有两种方式,

    1. define(): 您使用 define 方法定义的常量可用于整个项目。

      define('SITE_URL' , '/path/to/docroot/');
      echo SITE_URL;
      
    2. 类常量:类常量可用于整个项目。

      class MyConfig{
          const SITE_URL = '/path/to/docroot/';
      }
      echo MyConfig::SITE_URL;
      

    【讨论】:

    • 如何在整个项目的任何地方使用它?
    • 例如我需要在 index.php 中使用这个定义(不包括“config.php”)
    • 如果这些代码在 'config.php' 中,那么您必须将其包含在index.php 中,否则将这些代码写入index.php。如果这段代码不执行,它不会神奇地在当前执行头中添加 2 个常量。
    • 如果 const value 是数组或嵌套数组,IDE ( PhpStorm ) 不容易显示候选项。
    【解决方案2】:

    您可以在 config.php 中的单个配置文件 f.e 中定义常量,然后将其包含到您需要的项目中

    【讨论】:

    • 现在我这样做了,但我想使用常量而不包含每个位置
    • 如何定义一个配置文件,我可以在整个项目的任何地方使用它而不包括每个地方?
    【解决方案3】:

    使用auto_prepend_file

    对于使用本地主机,例如 XAMPP 或 WAMP:

    1. 转到 php.ini
    2. 找到“auto_prepend_file”并更改为auto_prepend_file="xampp/htdocs/dir.php"
    3. 重新启动 apache 服务以使其工作。

    如果这不起作用或者您无权访问 php.ini,请尝试修改 .htaccess 文件(不过我还没有尝试过这种方法)

    php_value auto_prepend_file "/real/path/to/file/file_name.php"
    

    【讨论】:

    • 这是一个糟糕的解决方案 - 您正在将 Web 服务器与软件耦合!
    猜你喜欢
    • 2020-10-02
    • 2018-05-23
    • 1970-01-01
    • 1970-01-01
    • 2019-07-27
    • 2019-11-03
    • 2012-04-09
    • 2020-03-22
    • 2013-01-04
    相关资源
    最近更新 更多