UFO ET IT

매직 메서드를 통해 액세스되는 PhpStorm 필드

ufoet 2021. 1. 6. 20:03
반응형

매직 메서드를 통해 액세스되는 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 > 정의되지 않음 > 정의되지 않은 필드

매직 방법을 통해 필드 액세스에 대해 알림


LazyOne 이 질문 댓글에서 언급했듯이 :

@property해당 클래스에 속하는 PHPDoc 주석을 통해 선언해야합니다 .

/**
 * @property string $bar
 */
class Foo {

    public function __get($name) {
        if ($name == 'bar') {
            return 'bar';
        }
        return NULL;
    }
}

Dmitry Dulepov의 기사 "빠른 팁 : 마법 방법과 PhpStorm"의 일부 입니다.

참조 URL : https://stackoverflow.com/questions/25578649/phpstorm-field-accessed-via-magic-method

반응형