我有这样的composer.json结构:
"psr-0": {
"DatabaseSeeder\\": "app/database/seeds/"
},我在app/database/种子中有文件(这里的文件可以动态创建,所以使用“classmap”解决方案:“app/database/ created”在此不起作用)我必须在播种之前总是转储-autoload:
像这样的结构:
# DatabaseSeeder.php
namespace DatabaseSeeder;
use Doctrine\ORM\EntityManager;
class DatabaseSeeder implements Seeder {
/**
* Run the database seeds.
*
* @return void
*/
public function run(EntityManager $em)
{
$this->call('DatabaseSeeder\UserTableSeeder', $em);
}
private function call($class, $em)
{
$reflectionMethod = new \ReflectionMethod($class, 'run');
$reflectionMethod->invoke(new $class, $em);
}在php composer.phar安装和php composer.phar dump-autoload之后,我不能在应用程序中使用,例如在index.php中。
$object = new \DatabaseSeeder\DatabaseSeeder();因为我收到错误:类DatabaseSeeder\DatabaseSeeder不存在,为什么??在启动对象时,它应该自动加载类。
发布于 2013-12-21 11:16:33
首先,您应该确保您的index.php适当地包含了composer autoload。
<?php
include __DIR__ . '/vendor/autoload.php';然后,您需要验证您的目录结构才能正确地自动加载。
如果您的PSR-0配置是
"psr-0": {
"DatabaseSeeder\\": "app/database/seeds/"
},那么您的目录结构应该如下所示:
app/
database/
seeds/
DatabaseSeeder/
DatabaseSeeder.php有关composer PSR-0自动加载的更多信息,您可以阅读composer 模式文档。希望这能有所帮助。
https://stackoverflow.com/questions/20717954
复制相似问题