【问题标题】:PHPSpec and two PSR-4 Namespace definitionsPHPSpec 和两个 PSR-4 命名空间定义
【发布时间】:2019-03-05 13:26:58
【问题描述】:

如果有人在其他地方或什至在这里问过这个问题,请提前道歉(搜索结果没有给我我想要的东西)。我想将我的核心文件配置为同时存在于我自己的命名空间中,例如,应用程序命名空间位于某个地方。

以下是文件结构的拟定方式。

app/Rentals
src/Core

有效地,考虑到目录结构,我可以在 composer.json 文件中拥有以下 psr-4 自动加载条目。

{
   ...,
     "psr-4": {
        "Rentals\\": "app/",
        "Selocrast\\": "src/"
    }
}

最后,我将向您展示我当前的 phpspec.yaml 文件以及它现在包含的配置。

suites:
  selocrast_suite:
    namespace: Selocrat

  rawson_suite:
    namespace: Rentals
    src_path: "%paths.config%/app"

  extensions:
    LeanPHP\PhpSpec\CodeCoverage\CodeCoverageExtension: ~

正如在上面的配置文件中看到的那样,我做了一些调整以使至少一个命名空间能够工作(默认)。我正在苦苦挣扎的是让多个套件指向不同的命名空间目录。

类型 Rental\Component\Model\Entity\Simple 已生成但无法加载。是否需要配置au 装载机?

我发现这个设置很难继续进行,这是 PHPSpec 在代码级别强制执行的吗?如果不是,那我做错了什么?

下面是我的版本:

$ bin/phpspec --version
phpspec 4.3.2

是否需要创建一个扩展来管理我的辅助命名空间?

【问题讨论】:

    标签: php tdd phpspec


    【解决方案1】:

    我认为你应该修改配置文件如下

    suites:
      selocrast_suite:
        namespace: Selocrat
        psr4_prefix: Selocrat
    
      rawson_suite:
        namespace: Rentals
        psr4_prefix: Rentals
        src_path: "%paths.config%/app"
    
      [...]
    

    【讨论】:

    • 谢谢,如果碰巧解决了我的问题,我会试试这个并回复到这个答案并接受。我发现使用两个单独的配置文件总是不得不在每个 PHPSpec 运行/描述命令中指定它们令人生畏。谢谢
    • 我最终做的是我创建了单独的配置文件,并通过指定我想要的配置单独运行我的 PHPSpec 命令。我不太喜欢这种方法,但它对我需要做的事情有效
    猜你喜欢
    • 2014-11-12
    • 2015-08-23
    • 2017-01-18
    • 2015-12-01
    • 1970-01-01
    • 2016-02-24
    • 2023-04-02
    • 2015-09-22
    • 2015-12-03
    相关资源
    最近更新 更多