[英]Composer and PSR-0
我有這樣的composer.json結構:
"psr-0": {
"DatabaseSeeder\\": "app/database/seeds/"
},
我在app / database / seeds中有文件(此處的文件可以動態創建,因此使用“ classmap”解決方案:[“ app / database / seeds”]在這里不起作用bcs我必須始終在播種前自動轉儲自動加載:
具有這樣的結構:
# 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不存在,為什么? 它應該在啟動對象時自動加載類。
首先,您應確保index.php正確包含composer自動加載。
<?php
include __DIR__ . '/vendor/autoload.php';
然后,您需要驗證目錄結構以正確地自動加載。
如果您的PSR-0配置是
"psr-0": {
"DatabaseSeeder\\": "app/database/seeds/"
},
那么您的目錄結構應如下所示:
app/
database/
seeds/
DatabaseSeeder/
DatabaseSeeder.php
有關composer PSR-0自動加載的更多信息,您可以閱讀composer 模式文檔。 希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.