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

psr-0和作曲家是如何工作的?

司徒博容
2023-03-14

我将用一个例子来问这个问题。假设我有一个这样的项目目录。

project

  vendor

      samplevendor

  src

  composer.json

首先我想知道我是否把作曲家放在。项目目录中的json文件是否正确,以便在供应商目录中安装库?第二,假设我有以下几行,作曲家。json

 "autoload":{
      "psr-0": {
              "samplevendor\\package": "lib/"
                }
            }

那么作曲家将在哪里配置自动加载来查找关于项目根的类samplevendor\包\sampleclass?我问这个问题是在看了symfony2composer.locked文件中的以下几行之后:

 "autoload": {
            "psr-0": {
                "Doctrine\\Common\\Annotations\\": "lib/"
            }
        }

更新:我在自动加载_名称空间中找到了相应的名称空间映射。php似乎与psr-0不符:

“条令\通用\注释”=

共有1个答案

徐德海
2023-03-14

您可能可以放置编写器。json项目中的任意位置取决于需求,但对于纯PHP(和HTML/CSS/JS)项目,最好将文件放在最上面的目录中。这样,如果您创建了一个库或想要一些其他好的副作用,Composer就能够找到它。(它们中有很多不会直接影响Composer或您的软件的工作方式)。

创建一个初始的编写器是一个好主意。json通过运行composer init。Composer将询问您有关供应商名称和软件名称的信息。我建议你在这里给出一个合理的答案。此外,您还可以将自己添加为开发人员,立即添加一些依赖项(不一定需要),最后创建初始文件。

PSR-0自动加载意味着要在目录中搜索给定的名称空间或类名前缀(记住那些下划线“\u Classname\u namespace\u Emulation”),即名为\namespace\class的类配置为“PSR-0”:{“namespace\\”:“src”}将位于src/namespace/class。php(如果文件不在那里,可能另一个组件能够加载该类,因此自动加载不会立即失败-Composer将注册该失败,并查看稍后的自动加载定义是否可以加载它)。

事实上,您在自动加载_名称空间中看到了不同的定义。所需库的php文件是正确的。Composer必须从位于供应商内的不同目录加载这些类,并且您自己的类将从Composer中“自动加载”部分给出的位置自动加载。json文件。

 类似资料:
  • 我有一位作曲家。json结构如下: 我有文件在应用程序/数据库/种子(这里的文件可以动态创建,所以解决方案与类地图:[应用程序/数据库/种子]不工作在这里bcs我必须始终转储-自动加载前播种: 用户表种子。php 数据库播种机。php 结构如下: 在php编写器之后。phar安装和php编写器。phar dump autoload我不能在应用程序中使用,例如在索引中。php 因为我收到错误:类Da

  • 我开始学习Composer,并正在开发一个系统,在该系统中,我将文件与核心应用程序文件分开,如下所示: 所以,要在composer中设置此设置。json文件并访问所有类/App much/Core会这样吗? 还是有更正确的方法? 我也读过PSR-0和PSR-4的比较,我仍然有点怀疑应该使用哪一种。在我的情况下,我应该实现什么,PSR-0还是PSR-4?

  • 如何自动加载助手函数(在任何类之外)?我可以在应该首先加载的某种引导文件?

  • 我正在为我的框架的功能制作一个composer库,但我遇到了这个问题,问题是psr-4的自动加载。 我有以下结构 最后一个文件夹是MyLibrary,其中包含hello文件夹。 在hello文件夹的根目录中,我有一个和一个文件夹。 composer.json 文件夹内是主文件- index.php 现在,用法在我的root中。 index.php o) 使用了psr-4,如下面的 o)使用了类路径

  • 我正在使用一些phpunit测试类尝试composer autoload,但我似乎无法让它工作。当我从命令行运行phpunit时,我得到以下错误:“PHP致命错误:Class…notfound”。 我将提供所有的结构和文件信息。我可以,所以希望有人能发现我的错误。 结构(精简为相关文件): composer.json phpunit.xml 测试/功能/基本测试用例。php 测试/功能/主页测试。

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