我的可分发 symfony2 包的安装问题
Problems with instalation of my distributable symfony2 bundle
我无法在任何 Symfony2 项目中成功安装我的第一个可分发包,因为我在配置包时出错。
我的捆绑包:https://github.com/KdrMkLabs/TicketBundle
当您按照安装说明安装捆绑包并像通常那样使用 composer 时,它就可以正常工作。但是当您 运行 网站出现以下异常时:
我不知道为什么会这样,你能帮我理解为可分发包设置配置的正确方法是什么吗?
谢谢。
KDRTicketBundle 配置:
composer.json
{
"name": "kdrmklabs/ticket-bundle",
"type": "symfony-bundle",
"autoload": {
"psr-0": { "KDRMKLabs\TicketBundle\": "" }
}
}
// file: KDRTicketBundle.php
namespace KDRMKLabs\TicketBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class KDRTicketBundle extends Bundle
{
}
备注:
- 我在我的所有项目 类(控制器、服务、实体)中使用命名空间
namespace KDRMKLabs\TicketBundle\*...
。
- 这个包在开发项目中工作正常,当它被分配在 src/ 目录中时就像每个 symfony2 包一样在开发中。
PSR-0 自动加载需要 完整命名空间 由目录表示。在这种情况下,这意味着包 class 应该位于 kdrmklabs/ticket-bundle/KdrmkLabs/TicketBundle/KdrmkLabsTicketBundle.php
.
当然,有这些额外的目录是很愚蠢的。这就是 PSR-4 自动加载的原因。该标准从路径中删除配置的命名空间前缀。
所以解决办法就是把"psr-0": { ... }
改成"psr-4": { ... }
我无法在任何 Symfony2 项目中成功安装我的第一个可分发包,因为我在配置包时出错。
我的捆绑包:https://github.com/KdrMkLabs/TicketBundle
当您按照安装说明安装捆绑包并像通常那样使用 composer 时,它就可以正常工作。但是当您 运行 网站出现以下异常时:
我不知道为什么会这样,你能帮我理解为可分发包设置配置的正确方法是什么吗?
谢谢。
KDRTicketBundle 配置:
composer.json
{
"name": "kdrmklabs/ticket-bundle",
"type": "symfony-bundle",
"autoload": {
"psr-0": { "KDRMKLabs\TicketBundle\": "" }
}
}
// file: KDRTicketBundle.php
namespace KDRMKLabs\TicketBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class KDRTicketBundle extends Bundle
{
}
备注:
- 我在我的所有项目 类(控制器、服务、实体)中使用命名空间
namespace KDRMKLabs\TicketBundle\*...
。 - 这个包在开发项目中工作正常,当它被分配在 src/ 目录中时就像每个 symfony2 包一样在开发中。
PSR-0 自动加载需要 完整命名空间 由目录表示。在这种情况下,这意味着包 class 应该位于 kdrmklabs/ticket-bundle/KdrmkLabs/TicketBundle/KdrmkLabsTicketBundle.php
.
当然,有这些额外的目录是很愚蠢的。这就是 PSR-4 自动加载的原因。该标准从路径中删除配置的命名空间前缀。
所以解决办法就是把"psr-0": { ... }
改成"psr-4": { ... }