2014-08-30 17 views
37

Ho ignorato la libreria di dati nella cartella della mia libreria codeigniter.Campo PhpStorm a cui si accede tramite il metodo magico

Alcuni codice dalla libreria

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(); 
    } 

Poi ho chiamato la libreria nel modello di

class Common_Model extends MY_Model{ 

    function __construct(){ 
     parent::__construct(); 
     $this->load->library('Datatables.php'); 
    } 

poi ho provato a chiamare le funzioni di libreria

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; 
} 

e tutto funziona bene, tranne che il phpstorm mi mostra l'errore

Field Accessed via magic method 

enter image description here

Ho provato a rimuovere questo errore con i commenti del documento, ma riesco a capire come posso fare questo .. qualsiasi aiuto sarà apprezzato.

+8

Devi dichiararli tramite '@ property' nel commento PHPDoc che appartiene a quella classe. – LazyOne

risposta

64

Se si desidera rimuovere questo senza documento commenti è possibile deselezionare Segnalatemi circa l'accesso a un campo tramite metodo magico che si trova in

Impostazioni progetto>Ispezioni>PHP>non definita>campo indefinito

Notify about access to a field via magic method

+12

Non so se ridere o piangere. Sono passato da Idea a phpstorm da solo di recente e avendo di nuovo questo problema ho cercato su Google questa notifica per trovare questa domanda. Non mi piaceva la risposta in svantaggio e ho trovato il commento di @ LazyOne come quello che stavo cercando. Poi ho capito che questa risposta era mia ... – chrisan

+0

Ho reso il commento di LazyOne una risposta comunitaria. Sentiti libero di aggiungere o correggere le informazioni. –

9

As mentioned by LazyOne nei commenti questione:

si deve dichiarare loro via @property in commento PHPDoc che appartiene a quella classe.

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

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

Snippet dall'articolo di Dmitry Dulepov "Quick tip: magic methods and PhpStorm".

+0

Il link all'articolo non è più valido. –

+1

@CraigLondon l'articolo non è necessario poiché tutto è nella risposta e il collegamento è stato fornito solo come fonte. Tuttavia, l'ho aggiornato con un collegamento istantaneo di [wayback machine] (http://archive.org/web/). –

Problemi correlati