编辑器 部署后自动加载不起作用



我正在学习如何更好地维护我编写的代码。我目前正在处理两个项目 - 都在开发中,并且都已推送到 GitHub。

我正在尝试将一个项目包含在另一个项目中(通过在项目的 composer.json 文件中声明它是依赖项( - 但在包含它之后,它缺少正确的自动加载配置。

我会更好地解释:项目 A 的 composer.json 文件有一个用于"psr-4"的自动加载行,将命名空间映射到"src"目录 - 运行后一切都很好并且可以正常工作:

composer install

然后,我可以包含/vendor/autoload.php 文件并立即开始使用该项目。当我查看该项目的供应商目录中生成的"autoload_psr4.php"文件时,我可以看到该数组包含每个 composer.json 文件的映射命名空间/目录的引用。

当我尝试将项目 A 作为依赖项包含在项目 B 中时,问题就出现了 - 运行作曲家安装后一切看起来都正常工作 - 创建供应商目录并将文件复制到那里 - 但是当我查看项目 B 中生成的"autoload_psr4.php"文件时,它缺少每个项目 A 的 composer.json 文件的映射命名空间/目录。

有人可以指出我可能缺少的方向,以使自动加载线转移到项目 B 中吗?

这是两个 composer.json 文件:

项目A:

{
"name": "jfreynik/hydra-net",
"description": "Network classes for the Hydra framework.",
"type": "library",
"keywords": [ "http", "net", "rest" ],
"license": "MIT",
"require": {
"php": ">=5.3.0"
},
"autoload": {
"psr-4": {
"hydra\net\": "src/"
}
}
}

项目B:

{
"name": "jfreynik/simple-mvc",
"description": "A pretty simple MVC framework for building websites.",
"type": "framework",
"keywords": [ "MVC", "Website Framework" ],
"license": "MIT",
"repositories": [
{
"type":"package",
"package": {
"name": "jfreynik/hydra-net",
"version":"*-dev",
"source": {
"url": "https://github.com/jfreynik/hydra-net.git",
"type": "git",
"reference":"master"
}
}
}
],
"require": {
"jfreynik/hydra-net": "*-dev"
},
"minumum-stability": "dev"
}

谢谢!

问题是我将项目 A 作为"包"包含在项目 B 中。我相信"包"不会扫描其包含的 composer.json 文件。(如果我错了,请纠正我( - 通过将项目 B 的 composer.json 文件更改为将项目 A 引用为"vcs",然后自动加载再次工作。- 这是项目B的调整后的composer.json文件。

{
"name": "jfreynik/simple-mvc",
"description": "A pretty simple little MVC framework for building websites.",
"type": "framework",
"keywords": [ "MVC", "Website Framework" ],
"license": "MIT",
"repositories": [
{
"type":"vcs",
"url": "https://github.com/jfreynik/hydra-net"
}
],
"require": {
"jfreynik/hydra-net": "dev-master"
},
"minumum-stability": "dev"
}

我真的很难找到工作示例,因为我真的刚刚开始使用作曲家,在此之前只包括来自packagist的专业软件包。我有很多东西要学(甚至在术语方面( - 所以如果有人可以添加额外的相关信息,以便以正确的方式将一个开发项目包含在另一个开发项目中,我将接受您的回答。

相关内容

  • 没有找到相关文章

最新更新