作曲家和PSR-0
问题描述:
我有composer.json结构是这样的:作曲家和PSR-0
"psr-0": {
"DatabaseSeeder\\": "app/database/seeds/"
},
我在应用程序/数据库/种子文件(文件在这里可以被动态地创建,以便溶液以“类映射”:[“应用/数据库/种子“]不在这里工作了BCS我要播种前总是翻斗自动加载:
- UserTableSeeder.php
- DatabaseSeeder.php
像这样的结构:
# 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转储,自动加载,我不能在应用程序中的index.php
$object = new \DatabaseSeeder\DatabaseSeeder();
,因为我收到错误例如使用:Class DatabaseSeeder \ DatabaseSeeder不存在为什么?它应该在启动对象时自动加载类。
答
首先,你应该确保你的index.php正确包含作曲家自动加载。
<?php
include __DIR__ . '/vendor/autoload.php';
然后,您需要验证您的目录结构以正确自动加载。
如果您的PSR-0配置
"psr-0": {
"DatabaseSeeder\\": "app/database/seeds/"
},
那么你的目录结构应该是这样的:
app/
database/
seeds/
DatabaseSeeder/
DatabaseSeeder.php
有关作曲家PSR-0自动加载的更多信息,你可以阅读作曲家schema文档。希望这可以帮助。