2015-10-30 3 views
2

I имеют следующую структуру файла:композитор PS4 Класс не найден

  • ajon/
    • проект/
      • SRC/
        • subproject1/
          • индекс .php
          • composer.json
        • subproject2/
          • composer.json

В моей composer.json у меня есть:

"psr-4": { 
    "ajon\\project\\subproject1\\": "src/subproject1/", 
    "ajon\\project\\subproject2\\": "src/subproject2/" 
} 

В subproject1 у меня есть модели/foo.php, который выглядит как:

namespace ajon\project\subproject1\Models; 

class Foo { ... } 

в subproject1/index.php у меня есть:

require_once 'vendor/autoload.php'; 
use ajon\project\subproject1\Models\Foo; 

Я получаю:

Class 'ajon\project\subproject1\Models\Foo' not found. 
  • Будет ли композитор искать namespace ajon\project\subproject1 в правильной папке, а затем знать, посмотреть в Models\Foo оттуда?

  • Я делаю что-то неправильно?

  • Есть ли лучший способ сделать это?

ответ

1

Я понял. Оказывается, директива psr-4 относительно того, где находится файл composer.json.

Я поставил composer.json как таковой:

"psr-4": { "ajon\\project\\subproject1\\": "./" } 

и она работала отлично.

+0

Отличная работа! Не могли бы вы также отметить свой ответ в качестве решения? Поэтому ясно, что оно было успешно разрешено. Спасибо –

+0

Буду, но это не позволит мне еще 38 часов. – ajon

+0

О, хорошо знать :). Спасибо за объяснение. –