首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >PHP与composer一起使用常量的正确方法

PHP与composer一起使用常量的正确方法
EN

Stack Overflow用户
提问于 2017-08-16 07:01:37
回答 1查看 416关注 0票数 0

我在packagist.org上有一个PHP库,它使用一些常量,从一个项目更改到另一个项目。

我试着用这样的常量:

  • 常量存储在conf.php
  • /vendor/username/mylib/conf.php编写器init用户名/mylib命令之后,我从复制到本地/conf.php,并将其用于当前项目配置

project1,在/conf.php中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
define("HOST", "host1.com");

project2,in /conf.php

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
define("HOST", "host2.com");

但看上去是不对的。

在composer库中使用常量的正确方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-16 08:36:44

我更喜欢用一种稍微不同的方式

在我的libabry我会

/vendor/vendorname/pkg/config/system.php

/vendor/vendorname/pkg/config/local.sample.php

并提供复制指示

/vendor/vendorname/pkg/config/local.sample.php

/config/local.php

那么,在我的代码中,我会有这样的东西

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    $sysconffile = static::$vendorbasedir . '/config/system.php';
    if (file_exists($sysconffile)) {
        $sysconf = require $sysconffile;
    } else {
        throw new \RuntimeException('Sys Conf Missing!');
    }

    $localconf = [];
    $localconfile = static::$appbasedir . '/config/local.php';
    if (file_exists($localconfile)) {
        $localconf = require $localconfile;
    }

更新:

我也更喜欢带有数据的静态类,而不是定义,因为定义在文档、类型提示和过度可写方面非常松散。

所以,一旦我有了这两个配置,我通常会

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
static::$config = array_replace_recursive($sysconf, $localconf);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45717072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文