diff --git a/src/Kodeine/Metable/Metable.php b/src/Kodeine/Metable/Metable.php index a6fb40b..05a2312 100644 --- a/src/Kodeine/Metable/Metable.php +++ b/src/Kodeine/Metable/Metable.php @@ -9,9 +9,7 @@ trait Metable { - - // Static property registration sigleton for save observation and slow large set hotfix - public static $_isObserverRegistered; + public static $_columnNames; /** @@ -194,20 +192,6 @@ public function whereMeta($key, $value) ->get(); } - /** - * Trait specific functions - * -------------------------. - */ - protected function setObserver() - { - if(!isset(self::$_isObserverRegistered)) { - $this->saved(function ($model) { - $model->saveMeta(); - }); - self::$_isObserverRegistered = true; - } - } - protected function getModelStub() { // get new meta model instance @@ -244,7 +228,6 @@ protected function saveMeta() protected function getMetaData() { if (!isset($this->metaLoaded)) { - $this->setObserver(); if ($this->exists) { $objects = $this->metas @@ -364,6 +347,12 @@ public function hasColumn($column) { if(empty(self::$_columnNames)) self::$_columnNames = array_map('strtolower',\Schema::connection($this->getConnectionName())->getColumnListing($this->getTable())); return in_array(strtolower($column), self::$_columnNames); } + + public static function bootMetable(){ + static::saved(function ($model) { + $model->saveMeta(); + }); + } public function __unset($key) {