Tôi không thể hiểu tại sao PhpStorm mang lại cho tôi những cảnh báo sau đây PHPDoc comment does not match function or method signature
qua phương pháp này:Tại sao tôi lại nhận được một cảnh báo PHPDoc trong PhpStorm qua mã này
/**
* Create a new instance of the class
* @param string $classname Class to instantiate
* @return object the instance
* @throw FactoryException If the class is not instantiable
*/
private function newInstance($classname) {
$reflectionClass = new \ReflectionClass($classname);
if (! $reflectionClass->isInstantiable()) {
throw new FactoryException("The class $classname is not instantiable.");
}
return new $classname;
}
Cảnh báo không phải là rất cụ thể, tôi đã đã thử nhiều thứ như thay đổi kiểu trả về thành "Object", "mixed" hoặc thậm chí "int" (để thử) nhưng nó không thay đổi. Vấn đề ở đây là gì ?
Tôi đã thử '@ throws' nhưng cảnh báo vẫn còn đó (tôi đã làm tương tự như bạn đã làm với gõ'/** 'nhưng ngay cả các tự động tạo ra docblock đã cảnh báo). Trên thực tế tôi có một phiên bản beta của PhpStorm 4.0, có lẽ nó chỉ là một lỗi? –
Funky, vâng tôi cũng đang sử dụng 4.0. – MetalFrog
@Matthieu 1) Nó chắc chắn nên được ** ném ** 2) Có vài vấn đề với hiện tại v4 EAP xây dựng (116.101) trong lĩnh vực này (tôi đang có cùng). Từ những gì tôi nhìn thấy (dựa trên ý kiến của bạn) chức năng này là trong lớp mở rộng lớp khác hoặc thực hiện giao diện và chức năng này ghi đè một trong lớp cha/giao diện. Nếu vậy - hãy so sánh các khối PHPDoc cho chúng - ngay cả khi 1 ký tự khác (ví dụ: "Tạo một phiên bản mới ..." so với "Tạo phiên bản mới ...") PhpStorm sẽ báo cáo lỗi đó. – LazyOne