Я пытаюсь написать хороший код, и часть этого — намеки на типы, чтобы упростить работу в будущем и повысить ожидания.
Это может показаться немного надуманным, но для меня это скорее подтверждение концепции.
Я пишу класс для разбивки файла TSV на вкладки и вставки в мою модель. В моем конструкторе я просил:
Illuminate\Database\Eloquent\Model
На что я перешел:
new \App\Model()
И, наконец, ответ об ошибке:
instance of App\Model given
Понятно, что я сделал что-то не так, но я не хочу принудительно использовать App \ Model, как я могу вообще попросить красноречивую модель?
Изменить для получения дополнительной информации:
Чтобы было понятнее, я использую Laravel 5, модели создаются с помощью artisan make: model. Конструктор выглядит следующим образом:
function __construct ($resource, Illuminate\Database\Eloquent\Model $model, $skip = 0)
И модель, которую я использую (для моей таблицы фильмов):
use Illuminate\Database\Eloquent\Model;
class Movie extends Model {
В подсказке к вашему типу предваряйте FQCN обратной косой чертой:
function __construct ($resource, \Illuminate\Database\Eloquent\Model $model, $skip = 0)
Либо это, либо добавить use
утверждение для вашего класса:
use Illuminate\Database\Eloquent\Model;
class MyClass {
function __construct ($resource, Model $model, $skip = 0) {
//
}
}
Других решений пока нет …