我正在尝试部署我的Symfony2项目。当我运行命令
时php app/console cache:clear --env=prod --no-debug
我收到以下错误:
PHP Fatal error: Class 'Acme\MainBundle\AcmeMainBundle' not found in /var/www/html/app/AppKernal.php on line 24
这是在AppKernal.php
中public function registerBundles()
{
$bundles = array(
...
new Acme\MainBundle\AcmeMainBundle(),
);
...
}
似乎命名空间存在问题?
答案 0 :(得分:10)
如果您在Symfony中收到包未找到错误,请在composer.json中修改psr-4
部分下的autoload
部分,如下所示。
"autoload": {
"psr-4": {
"": "src/"
},
},
通过这样做,您不必在创建新包时显式添加新的包名称空间。
答案 1 :(得分:5)
遇到同样的问题。 我刚刚删除了我的供应商文件夹
rm -rf vendor
并重新启动作曲家更新..然后一切都很好
composer update
答案 2 :(得分:5)
如果这发生在Symfony 3中(我还没有在symfony 2中测试过这个),
确保您的捆绑包在AppKernal.php中注册为:
public function registerBundles()
{
$bundles = array(
...
new YourBundle\YourBundle(),
);
...
}
检查您是否已更新composer.json
"autoload": {
"psr-4": {
"AppBundle\\": "src/AppBundle",
"YourBundle\\": "src/YourBundle"
},
"classmap": [ "app/AppKernel.php", "app/AppCache.php" ]
},
从您的控制台运行composer update
答案 3 :(得分:2)
使用Symfony 3.2添加代码生成器捆绑包后出现同样的问题。我不得不在AppBundle之后在composer.json的autoload部分添加这个新包:
val df = Seq(
(1.0,2.0,3.0,4.0,5.0)
).toDF("x1","x2","x3","x4","x5")
val describe = udf(
{ xs : Seq[Double] =>
val xmin = xs.min
val xmax = xs.max
val mean = xs.sum/xs.size.toDouble
(xmin,xmax,mean)
}
)
df
.withColumn("describe",describe(array("*")))
.withColumn("min",$"describe._1")
.withColumn("max",$"describe._2")
.withColumn("mean",$"describe._3")
.drop($"describe")
.show
答案 4 :(得分:1)
原来我需要将其添加到自动加载器中。谢谢@ DevZer0的评论。
$loader->add('Acme', __DIR__ . '/../src');
答案 5 :(得分:1)
有同样的问题吗?
sudo rm -rf vendor /
composer install
或
composer update
答案 6 :(得分:0)
删除整个文件夹对我来说不是很有说服力,所以我尝试了以下操作并且它有效:
$ composer update
然后我用:
检查了它$ php bin/console assets:install web --symlink
$ php bin/console cache:clear
答案 7 :(得分:0)
之前我遇到过上述所有错误,但在运行php app/console doctrine:migrations:status
时发现了类似的问题。
问题在于我没有导入一个用作注释一部分的常量。例如:
/**
* Either "OUTBOUND" (we send out) or "INBOUND" (we receive).
*
* @var string
*
* @ORM\Column(name="Direction", type="string", length=20, nullable=true)
*
* @Assert\Choice(
* choices = {BatchDirections::OUTBOUND,BatchDirections::INBOUND},
* message = "Choose a valid direction."
* )
*/
private $Direction = BatchDirections::INBOUND;
我没有导入BatchDirections文件。
使用use Nora\BatchBundle\Constants\BatchDirections;
解决导入问题解决了问题。