问题是,当我使用symfony 2.7时,我会将自己的包上传到composer packagist上。
首先,我试试我的composer.json

{
"name" : "funmi/sms-bundle",
"description" : "a develop components from funmitech",
"type" : "symfony-bundle",
"authors" : [{
    "name" : "funmi",
    "email" : "[email protected]"
}],
"keywords" : [
    "funmi develop"
],
"license" : [
    "MIT"
],
"require" : {
},
"autoload" : {
    "psr-0" : {
        "Funmi\\SmsBundle" : ""
    }
},
"target-dir" : "",
"repositories" : [{
}],
"extra" : {
    "branch-alias" : {
        "dev-master" : "1.0-dev"
    }
  }
}

但是当我在appkernel.php中添加funmi\smsbundle\funmismbunle()时
命名空间不存在
,然后我将目标目录的值更改为/src/,但它仍然不起作用。
它只在我将target-dir值设置为Funmi\SmsBundle时才起作用,现在的问题是为什么我必须这样设置?

最佳答案

target-dir已弃用,请勿使用。
我希望您的bundle类位于根目录中,对吗?这意味着您需要配置PSR-4自动加载器:

"autoload" : {
    "psr-4" : {
        "Funmi\\SmsBundle\\" : ""
    }
},

这将自动加载器配置为在Funmi\SmsBundle\FunmiSmsBundle中搜索/FunmiSmsBundle.php

08-15 19:48