đối với bài này Với:loại PHPStorm gợi ý lớp con của baseclass
này là về một trường hợp cạnh trong PHPStorm kiểu gián tiếp. hãy cố gắng làm theo - Tôi sẽ làm hết sức mình để được càng rõ ràng càng tốt:
Vì vậy, tôi đã có lớp cơ sở trừu tượng này:
abstract class myBaseController {
protected $_model;
...
}
mà lớp khác kế thừa từ:
class myController extends myBaseController {
$hello = 'hello';
...
}
và đó là tiếp tục mở rộng bởi một lớp thứ ba:
class myNewController extends myController {
public $myvar;
$this->_model = new myModel();
...
public function myFunc(){
// !!form is underlined as: "Method 'form' not found in class"!!
$form = $this->_model->form($new_variable);
}
Dưới đây là một mẫu của lớp MyModel:
class myModel extends BaseModel {
$world = 'world';
public function form($my_variable) {
do_something();
}
câu hỏi thật của tôi là làm thế nào để đúng cách "PHPDoc" kịch bản này:
Một lớp con myNewController
đang sử dụng một thừa hưởng biến _model
gán một thể hiện của một lớp myModel
có chức năng độc đáo form
. PHPStorm đúng cách nên tìm hiểu về form
trong số myNewController
như thế nào?
Giải pháp của tôi cho đến nay liên quan đến tài liệu myBaseController
như thế này:
abstract class myBaseController {
/**
* @var object
*/
protected $_model;
...
}
Tuy nhiên tôi nghĩ @var object
là quá rộng (PHPStorm sẽ không tìm thấy lời tuyên bố của nó) và tôi đoán là cần có một tốt hơn (và cụ thể hơn) cách để làm điều này.
Có lẽ chúng ta thay vì có thể làm:
/**
* @var BaseModel
*/
nếu PHPStorm đã có một cách khác để nhìn vào lớp con cho phương pháp này.
Bất kỳ ý tưởng nào? Cảm ơn tất cả các bạn trước.
Hãy thử: '/ ** * @var $ variableName ClassName * /' – vaso123
@lolka_bolka Nếu tôi làm điều đó nó sẽ làm việc nhưng sau đó '$ _model' sẽ khóa xuống' ClassName'. '$ _model' nên được tự do gán bất kỳ lớp mô hình nào của tôi mà mỗi lớp có thể có các phương thức duy nhất. Vì vậy, tôi nên -ideally- tài liệu '$ _model' từ bên trong lớp con' myNewController'. – kstratis
Bạn có thể bình luận về downvote không? – kstratis