题
是否可以使用模型/存储库模式在PhpStorm中获得行代码完成?
我的设置
我正在使用Laravel并实现Laracasts视频中描述的存储库模式.
代码
下面是模型在Laravel中如何工作的基本示例,以及如何无法获得模型属性的代码完成.
这段代码可以正常工作并打印出'billy',但属性$ name不是类型提示,也不会在PhpStorm中完成代码.类型提示是优先考虑父属性定义类型而不是子元素,这对我来说似乎很奇怪.
<?php
// Models
abstract class Model {
public $sqlTableName;
public function findFromDatabase($id)
{
$model = new $this;
// This would be grabbed using table name and $id
$fakeDatabaseRow = ['name' => 'billy', 'job' => 'engineer'];
foreach ($fakeDatabaseRow as $column => $value) {
$model->$column = $value;
}
return $model;
}
}
class User extends Model {
public $name;
public $job;
public $sqlTableName = 'users';
}
// Repositories
abstract class RepositoryBase {
/**
* …Run Code Online (Sandbox Code Playgroud)