当前位置: 首页 > 知识库问答 >
问题:

PHP使用作曲家常量的正确方法

汪栋
2023-03-14

我在packagist.org上有一个PHP库,它使用一些常量,随着项目的不同而变化。

我尝试使用这样的常量:

>

  • 常量存储在composer libriary的conf.php中

    在作曲家init用户名/mylib命令之后,我从 /vendor/username/mylib/conf.php复制到本地/conf.php并将其用于当前项目配置

    对于project1,在/conf.php中

    define("HOST", "host1.com");
    

    project2,在/conf.php中

    define("HOST", "host2.com");
    

    但这看起来是个错误的方法。

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

  • 共有1个答案

    钱运浩
    2023-03-14

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

    在我的libabry中,我将拥有
    /vendorname/pkg/config/system.php
    /vendorname/pkg/config/local.sample.php

    并提供复印指示

    /供应商/供应商名/pkg/config/local.sample.php
    to
    /config/local.php

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

        $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;
        }
    

    更新:

    我也更喜欢使用数据而不是定义的静态类,因为定义在文档、类型暗示和可写性方面非常松散。。

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

    static::$config = array_replace_recursive($sysconf, $localconf);
    
     类似资料:
    • 问题内容: 我正在尝试使用composer从不包含在packagist中的 github中自动克隆一个git存储库,但是它无法正常工作,我无法弄清楚我在做什么错。 我认为我必须将其包括在“存储库”中,如下所示: 然后可能在“要求”部分列出它。它应该类似于此示例,但不起作用。它只给出此错误: 您的要求无法解决为一组可安装的软件包。 有没有人已经尝试做过这样的事情? 问题答案: 在2013年撰写本文时

    • 我用作曲家建立了交响乐。 我在composer.json文件中添加了一些依赖项,如下所示: 当我运行composer.phar更新时,我收到以下消息: 用包信息加载作曲家存储库更新依赖项(包括要求开发)您的需求无法解析为一组可安装的包。 问题1-索纳塔项目/intl捆绑包开发主机的安装请求- 因此,我不知道还有什么更好的方法,我想我可能需要运行composr.phar安装,这给了我以下信息: 加载

    • 我正在使用Symfony 2.3.4 在我的控制台上,我创建了sylius/sylius项目,在安装sensio/distribution捆绑包之前,我更喜欢dist 作曲家抛出此错误消息 我试过: > 编辑sylius/composer.json,并将seno/分布-包:2.3.修改为seno/分布-包:2.2.-dev 在C:\wamp\www\sylius中打开一个shell。将app/co

    • 我把我的laravel项目上传到一个需要PHP7及以上版本的子域上。我已经更新了子域以使用PHP7。但是,当运行

    • 我正在尝试安装一些symfony捆绑包来创建本教程中的管理工具:http://www.ens.ro/2012/07/13/symfony2-jobeet-day-12-the-admin-bundle/ 我正在使用symfony 2.3。*我使用composer作为我的依赖项,如下所述:无法使用composer设置奏鸣曲 但是,当我尝试按照上面的composer文件(php composer.ph

    • 其实我是新的PHP。我在一个几乎是空的文件夹中运行这个(实际上是按照劳拉-cast教程:用TDD设计一个流畅的应用编程接口)。 我的目录结构看起来像 src 表情。php 表达测试。php 内部作曲家。json: 内部表达测试。php: 内心的表达。php 然后我运行composer dump autoload并运行phpunit,但仍然得到: 我的语法有问题吗?我对作曲家的理解是非常基本的。提前