diff --git a/lib/models/SimpleORMap.class.php b/lib/models/SimpleORMap.class.php
index 4a0caa3fea193571e9f1cc3bc501dcaf38470d94..89cdd09bf28c67f3b9699b2e5bdab3b981c24321 100644
--- a/lib/models/SimpleORMap.class.php
+++ b/lib/models/SimpleORMap.class.php
@@ -246,7 +246,7 @@ class SimpleORMap implements ArrayAccess, Countable, IteratorAggregate
      */
     protected static function configure($config = [])
     {
-        $class = get_called_class();
+        $class = static::class;
 
         if (empty($config['db_table'])) {
             $config['db_table'] = strtolower($class);
@@ -459,8 +459,7 @@ class SimpleORMap implements ArrayAccess, Countable, IteratorAggregate
      */
     public static function find($id)
     {
-        $class = get_called_class();
-        $ref = new ReflectionClass($class);
+        $ref = new ReflectionClass(static::class);
         /** @var static $record */
         $record = $ref->newInstanceArgs(func_get_args());
         if (!$record->isNew()) {
@@ -480,9 +479,8 @@ class SimpleORMap implements ArrayAccess, Countable, IteratorAggregate
     {
         $ret = false;
         $db_table = static::db_table();
-        $class = get_called_class();
-        $record = new $class();
-        call_user_func_array([$record, 'setId'], func_get_args());
+        $record = new static();
+        $record->setId(...func_get_args());
         $where_query = $record->getWhereQuery();
         if ($where_query) {
             $query = "SELECT 1 FROM `$db_table` WHERE "
@@ -521,8 +519,7 @@ class SimpleORMap implements ArrayAccess, Countable, IteratorAggregate
      */
     public static function create($data)
     {
-        $class = get_called_class();
-        $record = new $class();
+        $record = new static();
         $record->setData($data, false);
         if ($record->store()) {
             return $record;
@@ -540,9 +537,7 @@ class SimpleORMap implements ArrayAccess, Countable, IteratorAggregate
      */
     public static function build($data, $is_new = true)
     {
-        $class = get_called_class();
-        /** @var static $record */
-        $record = new $class();
+        $record = new static();
         $record->setData($data, !$is_new);
         $record->setNew($is_new);
         return $record;
@@ -570,7 +565,6 @@ class SimpleORMap implements ArrayAccess, Countable, IteratorAggregate
      */
     public static function import($data)
     {
-        $class = get_called_class();
         $record_data = [];
         $relation_data = [];
         foreach ($data as $key => $value) {
@@ -581,8 +575,8 @@ class SimpleORMap implements ArrayAccess, Countable, IteratorAggregate
             }
         }
         $record = static::toObject($record_data);
-        if (!$record instanceof $class) {
-            $record = new $class();
+        if (!$record instanceof static) {
+            $record = new static();
             $record->setData($record_data, true);
         } else {
             $record->setData($record_data);
@@ -856,8 +850,7 @@ class SimpleORMap implements ArrayAccess, Countable, IteratorAggregate
      */
     public static function toObject($id_or_object)
     {
-        $class = get_called_class();
-        if ($id_or_object instanceof $class) {
+        if ($id_or_object instanceof static) {
             return $id_or_object;
         }
         if (is_array($id_or_object)) {
@@ -880,31 +873,31 @@ class SimpleORMap implements ArrayAccess, Countable, IteratorAggregate
         } else {
             $id = $id_or_object;
         }
-        return call_user_func([$class, 'find'], $id);
+        return static::find($id);
     }
 
     /**
      * interceptor for static findByColumn / findEachByColumn / countByColumn /
      * deleteByColumn magic
+     *
      * @param string $name
      * @param array $arguments
      * @throws BadMethodCallException
      * @return int|static|static[]
      */
-    public static function __callStatic($name, $arguments)
+    public static function __callStatic(string $name, array $arguments)
     {
         $db_table = static::db_table();
         $alias_fields = static::alias_fields();
         $db_fields = static::db_fields();
         $name = strtolower($name);
-        $class = get_called_class();
         $order = '';
         $param_arr = [];
         $where = '';
         $where_param = is_array($arguments[0]) ? $arguments[0] : [$arguments[0]];
-        $prefix = strstr($name, 'by', true);
-        $field = substr($name, strlen($prefix) + 2);
-        switch ($prefix) {
+        $action = strstr($name, 'by', true);
+        $field = substr($name, strlen($action) + 2);
+        switch ($action) {
             case 'findone':
                 $order = $arguments[1] ?? '';
                 $param_arr[0] =& $where;
@@ -930,19 +923,19 @@ class SimpleORMap implements ArrayAccess, Countable, IteratorAggregate
             case 'delete':
                 $param_arr[0] =& $where;
                 $param_arr[1] = [$where_param];
-                $method = "{$prefix}bysql";
+                $method = "{$action}bysql";
                 break;
             default:
-                throw new BadMethodCallException("Method $class::$name not found");
+                throw new BadMethodCallException("Method " . static::class . "::$name not found");
         }
         if (isset($alias_fields[$field])) {
             $field = $alias_fields[$field];
         }
         if (isset($db_fields[$field])) {
             $where = "`$db_table`.`$field` IN(?) " . $order;
-            return call_user_func_array([$class, $method], $param_arr);
+            return call_user_func_array([static::class, $method], $param_arr);
         }
-        throw new BadMethodCallException("Method $class::$name not found");
+        throw new BadMethodCallException("Method " . static::class . "::$name not found");
     }
 
     /**