Laravel, используя пакеты с PSR-4, выдает сообщение "Путь подсказки не определен для"


Я использую Laravel 4.1 и запускаю пакет (подраздел), который использует стандарт PSR-4. Когда я пытаюсь отобразить любое представление с помощью:

return View::make('subby::user.login');

Я получаю сообщение:

No hint path defined for [subby]

Я много чего переделывал, но обычно это были проблемы с опечатками

Author: Gonçalo Queirós, 2014-03-03

1 answers

Проблема заключается в использовании PSR-4 Поскольку Laravel по умолчанию имеет значение PSR-0, Предполагается, что ресурсы (представления и т. Д.) Пакета будут на 2 уровня выше, чем у поставщика услуг пакетов. Пример:

src
├── config
├── lang
├── migrations
├── Ghunti
│   └── Subby
│       └── SubbyServiceProvider.php
├── routes.php
└── views
    └── user
        └── login.blade.php

С PSR-4 поставщик услуг пакетов и представления будут на одном уровне (и появится ошибка "Путь подсказки не определен":

src
├── config
├── lang
├── migrations
├── SubbyServiceProvider.php
├── routes.php
└── views
    └── user
        └── login.blade.php

Чтобы исправить это, используйте метод поставщика услуг пакетов boot() вместо:

public function boot()
{
    $this->package('ghunti/subby');
}

Нам нужно указать путь к ресурсам (3-й параметр)

public function boot()
{
    //For PSR-4 compatibility we need to specify the correct path (3rd parameter)
    $this->package('ghunti/subby', null, __DIR__);
}
 14
Author: Gonçalo Queirós, 2014-03-03 00:41:10