performance optimizations

This commit is contained in:
Frank Schubert
2022-02-15 23:12:19 +01:00
parent fa3dec263f
commit c189041b67
10 changed files with 72 additions and 36 deletions
+25 -5
View File
@@ -36,21 +36,41 @@ class Termination extends mfBaseModel {
}
public function loadWorkflowItems() {
$item_ids = [];
foreach(WorkflowitemModel::search(["object_type" => "Termination", "active" => 1]) as $item) {
$item->setObjectId($this->id);
$this->workflowitems[$item->name] = $item;
mfValuecache::set("wfTerm-".$item->name, $item);
//mfValuecache::set("wfTerm-name-".$item->name, $item);
//mfValuecache::set("wfTerm-id-".$item->id, $item);
$item_ids[] = $item->id;
}
// get values
$values = WorkflowvalueModel::search(["object_id" => $this->id]);
//var_dump($values);exit;
foreach($values as $value) {
if(array_key_exists($value->item->name, $this->workflowitems)) {
//var_dump($value);exit;
$this->workflowitems[$value->item->name]->setValue($value);
mfValuecache::singleton()->set("wfTerm-name-".$this->workflowitems[$value->item->name]->name, $this->workflowitems[$value->item->name]);
mfValuecache::singleton()->set("wfTerm-id-".$this->workflowitems[$value->item->name]->id, $this->workflowitems[$value->item->name]);
mfValuecache::singleton()->set("wfItemvalue-item-".$value->item_id."-object-".$value->object_id, $value);
}
}
//var_dump(array_keys(mfValuecache::singleton()->getCache()));
}
public function getWorkflowvalue($itemname, $type = false) {
$item = mfValuecache::get("wfTerm-".$itemname);
$item = mfValuecache::singleton()->get("wfTerm-name-".$itemname);
if(!$item) {
$item = WorkflowitemModel::getFirst(['name' => $itemname]);
if(!$item->id) {
return null;
}
mfValuecache::set("wfTerm-".$itemname, $item);
mfValuecache::singleton()->set("wfTerm-name-".$itemname, $item);
mfValuecache::singleton()->set("wfTerm-id-".$item->id, $item);
}
switch($item->type) {
@@ -282,14 +302,14 @@ class Termination extends mfBaseModel {
}
if($name == "creator") {
$user = mfValuecache::get("Worker-id-".$this->create_by);
$user = mfValuecache::singleton()->get("Worker-id-".$this->create_by);
if($user) {
$this->creator = $user;
return $this->creator;
}
$this->creator = new User($this->create_by);
if($this->creator->id) {
mfValuecache::set("Worker-id-".$this->create_by, $this->creator);
mfValuecache::singleton()->set("Worker-id-".$this->create_by, $this->creator);
}
return $this->creator;
}