I have ignited datatables Library in my CodeIgniter library folder.
Some Code from Library
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(); }
Then I called the library in model
class Common_Model extends MY_Model{ function __construct(){ parent::__construct(); $this->load->library('Datatables.php'); }
then I tried to call the library functions
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; }
and everything works fine, except that the phpstorm shows me this error:
Field Accessed via magic method
I tried to remove this error with document comments but can't figure out how can I do that.. any help will be appreciated.
Edit: Just because I keep getting upvotes for this, I want to preface this answer with a caveat. I inherited an old project that I would not be working on long term nor be paid to properly type everything. I consider the below a nuclear option and would only do so under similar conditions. If this is a project you own or will at least be working with a long time, especially in modern PHP 7/8 and beyond era, please don't do this and tidy up your code instead with actual types or at least a docblock :) Original answer follows below.
If you want to remove this without document comments you can uncheck Notify about access to a property via magic method which is found in
Project Settings > Inspections > PHP > Undefined > Undefined property
PhpStorm preferences screenshot
As mentioned by LazyOne in the question comments:
You have to declare them via
@property
in PHPDoc comment that belongs to that class.
/** * @property string $bar */ class Foo { public function __get($name) { if ($name == 'bar') { return 'bar'; } return NULL; } }
Snippet from Dmitry Dulepov's article "Quick tip: magic methods and PhpStorm".
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With