web-dev-qa-db-fra.com

Champ PhpStorm accessible via la méthode magique

J'ai allumé la bibliothèque de tables de données dans mon dossier de bibliothèque CodeIgniter.

Du code de la bibliothèque

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

Ensuite, j'ai appelé la bibliothèque en modèle

class Common_Model extends MY_Model{

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

alors j'ai essayé d'appeler les fonctions de la bibliothèque

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

et tout fonctionne bien, sauf que le phpstorm me montre cette erreur:

Field Accessed via magic method

enter image description here

J'ai essayé de supprimer cette erreur avec des commentaires sur le document, mais je n'arrive pas à comprendre comment puis-je le faire .. toute aide sera appréciée.

54
Sizzling Code

Si vous souhaitez supprimer cela sans commentaires de document, vous pouvez décocher Notifier l'accès à un champ via la méthode magique qui se trouve dans

Paramètres du projet> Inspections> PHP > Non défini> Champ non défini

Notify about access to a field via magic method

85
chrisan

Comme mentionné par LazyOne dans les commentaires de la question:

Vous devez les déclarer via @property dans le commentaire PHPDoc qui appartient à cette classe.

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

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

Extrait de l'article de Dmitry Dulepov "Astuce rapide: méthodes magiques et PhpStorm" .

32
Emile Bergeron