I'm trying to get PhpStorm to stop warning me about methods for a dynamically initialized class.
Here is the code for my method:
function create_or_update_objects ($object_name, $method_callbacks = []) {
// grab duplicate field names used to check for existing objects
$field = new Field();
$duplicate_field_names = $field->fetch_duplicate_names();
foreach ($_SESSION['objects'] as $session_object) {
$object = new $object_name();
// set object properties
foreach ($session_object as $key => $value) {
if (property_exists($object, $this->data[$key]['name'])) {
$object->{$this->data[$key]['name']} = $value;
}
else {
$object->fields[$this->data[$key]['name']] = $value;
}
}
// perform object method callbacks
foreach ($method_callbacks as $method_callback) {
$object->$method_callback();
}
if ($object->exists_by_duplicate_fields($duplicate_field_names)) {
// object already exists, update by data field names
$object->set_id_by_duplicate_fields($duplicate_field_names);
$object->update_by_data_names($this->data);
}
else {
// object does not exist, create it
$object->create();
}
}
}
PhpStorm is giving me warnings about the following methods not found:
- exists_by_duplicate_fields
- set_id_by_duplicate_fields
- update_by_data_names
- create
I am aware that I can use /** @noinspection PhpUndefinedMethodInspection */
above every single line - but I'm wondering if there is a better way of doing this?