마법 방법으로 PhpStorm 필드에 액세스
CodeIgniter 라이브러리 폴더에서 데이터 테이블 라이브러리를 점화했습니다.
라이브러리의 일부 코드
class Datatables
{
/**
* Global container variables for chained argument results
*
*/
protected $ci;
protected $table;
protected $distinct;
protected $group_by;
protected $select = array();
protected $joins = array();
protected $columns = array();
protected $where = array();
protected $filter = array();
protected $add_columns = array();
protected $edit_columns = array();
protected $unset_columns = array();
/**
* Copies an instance of CI
*/
public function __construct()
{
$this->ci =& get_instance();
}
그리고 나서 나는 도서관 모델에게 전화를 걸었다.
class Common_Model extends MY_Model{
function __construct(){
parent::__construct();
$this->load->library('Datatables.php');
}
그리고 나서 나는 도서관 함수를 호출하려고 했다.
function select_fields_joined_DT($data, $PTable, $joins = '', $where = '', $addColumn = '',$unsetColumn='')
{
/**
*
*/
$this->datatables->select($data);
if ($unsetColumn != '') {
unset_column($unsetColumn);
}
$this->datatables->from($PTable);
if ($joins != '') {
foreach ($joins as $k => $v) {
//$this->datatables->join($v['table'], $v['condition'], $v['type']);
}
}
if ($addColumn != '') {
$this->datatables->add_column("Actions", $addColumn);
}
$result = $this->datatables->generate();
return $result;
}
phpstorm이 다음 오류를 표시하는 것 외에는 모두 정상적으로 작동합니다.
Field Accessed via magic method
문서 코멘트로 이 에러를 삭제하려고 했지만, 어떻게 하면 좋을지 알 수 없습니다.어떤 도움이라도 감사합니다.
편집: 이 문제에 대한 투표가 계속 증가하고 있다는 이유만으로 이 답변의 선두에 경고문을 붙이고 싶습니다.저는 오랜 기간 일하지 않고 모든 것을 타이핑하는 데 돈을 받지 않는 오래된 프로젝트를 물려받았습니다.나는 아래를 핵 옵션으로 간주하며 유사한 조건에서만 그렇게 할 것이다.만약 이것이 당신이 소유하고 있거나 적어도 오랜 시간 동안 작업하고 있다면, 특히 최신 PHP 7/8 및 그 이후로는 이것을 하지 말고 실제 유형이나 적어도 docblock으로 코드를 정리하세요:) 원래의 답변은 다음과 같습니다.
문서 주석 없이 이 항목을 제거하려면 다음 항목에 있는 마법 방법을 통해 속성에 대한 액세스에 대한 알림을 선택 취소합니다.
[ Project Settings ]> [ Inspections ]> [ PHP ]> [ Undefined ]> [ Undef
LazyOne이 질문에서 언급한 바와 같이 다음과 같습니다.
당신은 그들을 신고해야 합니다
@property
이 클래스에 속하는 PPDoc 코멘트에 포함되어 있습니다.
/**
* @property string $bar
*/
class Foo {
public function __get($name) {
if ($name == 'bar') {
return 'bar';
}
return NULL;
}
}
Dmitry Dulepov의 기사 "Quick tip: magic methods and PhpStorm"의 일부입니다.
프로젝트 전체에 대한 검사를 비활성화하지 않고 클래스 파일을 수정하여 추가하지 못하는 경우@property
tag, 사용 장소에서의 경고를 억제하는 방법은 다음과 같습니다.
/** @noinspection PhpUndefinedFieldInspection */
마법 필드가 사용되는 줄 바로 앞에 새 줄에 추가합니다.
@christian 답변은 아직 유효하지만 검사를 비활성화하는 경로가 최근에 변경되었습니다.
새로운 것은 다음과 같습니다.
[ Preferences ]> [ Editor ]> [ Inspections ]> [ PHP ]> [ Undefined Symbols ]> [ Undef
그런 다음 "Magic Method를 통한 속성 액세스 알림"을 사용하지 않도록 설정합니다.
언급URL : https://stackoverflow.com/questions/25578649/phpstorm-field-accessed-via-magic-method
'itsource' 카테고리의 다른 글
도커 컨테이너를 어떻게 유지합니까? (0) | 2022.09.29 |
---|---|
Vue + Vuex 프로젝트에 Vega 차트를 포함하려고 하면 오류가 발생함 (0) | 2022.09.29 |
HttpServletResponse.getOutputStream()/.getWriter()에서 .close()를 호출해야 합니까? (0) | 2022.09.29 |
Facebook API - Facebook API를 통해 Facebook 사용자의 프로필 이미지를 얻는 방법(사용자가 애플리케이션을 "허용"할 필요가 없음) (0) | 2022.09.29 |
JRE 1.7 - Java 버전 - 반환: java/lang/NoClassDefFoundError: java/lang/Object (0) | 2022.09.29 |