Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 编写器创建本地包_Php_Json_Composer Php - Fatal编程技术网

Php 编写器创建本地包

Php 编写器创建本地包,php,json,composer-php,Php,Json,Composer Php,在vendor目录内的项目中,我创建了一个名为Hello的新目录,并创建了一个新类HelloWorld.php,其名称空间为Hello\Test。然后在Hello的根目录中,我创建了一个带有默认元数据的composer.json(author,license,desc,required),并添加了自动加载PSR-4Hello\\Test\\ 那么,我需要做什么,然后自动加载我的包。我查看了一些Symfony组件,它们的composer.json包和配置是相同的 可以像这样从供应商自动加载我的本地

vendor
目录内的项目中,我创建了一个名为
Hello
的新目录,并创建了一个新类
HelloWorld.php
,其名称空间为
Hello\Test
。然后在
Hello
的根目录中,我创建了一个带有默认元数据的
composer.json
author
license
desc
required
),并添加了自动加载PSR-4
Hello\\Test\\

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

可以像这样从
供应商
自动加载我的本地软件包吗

目录结构:

|-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\\": ""
    }
  }
}
{
  "autoload": {
    "psr-4": {
      "": "src/",
      "Hello\\Test\\": "./vendor/Hello"
    }
  },
  "require": {
    "Hello/Test": "*"
  }

}
我的HelloWorld.php类具有
名称空间Hello\Test
index.php内部
i do
include'vendor/autoload.php
和root composer.json

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

}

作曲家更新

好的!很抱歉迟了答复。 您只需要一个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
?是的,但什么都没有发生。当我尝试在
index.php
中创建实例时,我发现没有找到错误类。然后确定。能否将
psr-4
声明粘贴到composer.json中?还有你的Hello目录结构?现在检查新的更新