【问题标题】:Composer create local packageComposer 创建本地包
【发布时间】:2016-06-25 06:44:49
【问题描述】:

vendor 目录内的项目中,我创建了一个名为Hello 的新目录,并使用命名空间Hello\Test 创建了一个新类HelloWorld.php。然后在Hello 的根目录中,我使用默认元数据(authorlicensedescrequired)创建了一个composer.json,并添加了自动加载 PSR-4 Hello\\Test\\

那么接下来我需要做什么来自动加载我的包。我查看了一些 Symfony 组件,它们的 composer.json 包和配置是相同的。

是否可以像这样从vendor 自动加载我的本地包?

目录结构:

|-my_project
|-composer.json
|---vendor
|-------composer
|-------autoload.php
|-------Hello
|-----------composer.json
|-----------HelloWorld.php

./vendor/Hello/composer.json

{
  "name": "Zend/Hello",
  "description": "My test package",
  "license": "MIT",
  "authors": [
    {
      "name": "Zend Zend",
      "email": "test@example.com"
    }
  ],
  "autoload": {
    "psr-4": {
      "Hello\\Test\\": ""
    }
  }
}

我的 HelloWorld.php 类有 namespace Hello\Test;index.php 我做include 'vendor/autoload.php 和根 composer.json

{
  "autoload": {
    "psr-4": {
      "": "src/",
      "Hello\\Test\\": "./vendor/Hello"
    }
  },
  "require": {
    "Hello/Test": "*"
  }

}

composer update

【问题讨论】:

  • 你试过运行composer update吗?
  • 是的,但什么也没发生。当我尝试在index.php 中创建实例时,我在include autload 中找到错误类。
  • 好的。您能否将 psr-4 声明粘贴到您的 composer.json 中?和你的 Hello 目录结构?
  • 立即查看新更新

标签: php json composer-php


【解决方案1】:

好的!这么晚才回复很抱歉。 您只需要一个 composer.json 即可完成这项工作。您的主项目目录中的那个。

试试这个:

{
   "name": "Zend/Hello",
   "description": "My test package",
   "license": "MIT",
   "authors": [
      {
          "name": "Zend Zend",
          "email": "test@example.com"
      }
   ],
   "autoload": {
       "psr-4": {
           "Hello\\Test\\": "vendor/Hello"
       }
   }
}

你的 HelloWorld.php 文件应该是这样的:

<?php

namespace Hello\Test;

class HelloWorld {

    // your methods goes here
}

运行作曲家自我更新以获取最新的作曲家运行composer update,现在应该将其添加到您的 vendor/composer/autoload_psr4.php 文件中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-15
    • 2014-04-25
    • 1970-01-01
    • 2018-02-02
    • 1970-01-01
    • 2013-09-01
    • 2020-02-15
    • 1970-01-01
    相关资源
    最近更新 更多