Alias definitions 1.0.0
This commit is contained in:
87
common/Alias/Model.php
Normal file
87
common/Alias/Model.php
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
<?php
|
||||||
|
namespace App\Alias;
|
||||||
|
|
||||||
|
use Stringy\Stringy;
|
||||||
|
use App\Contract\Auth;
|
||||||
|
|
||||||
|
class Model extends \Model
|
||||||
|
{
|
||||||
|
public function getTable()
|
||||||
|
{
|
||||||
|
return parent::_get_table_name(static::class);
|
||||||
|
}
|
||||||
|
protected function log()
|
||||||
|
{
|
||||||
|
if (strpos(get_called_class(), 'Incoviba\\common\\') !== false) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$user = Auth::User()->id;
|
||||||
|
$orm = $this->orm;
|
||||||
|
$ref = new \ReflectionObject($orm);
|
||||||
|
if (!$ref->hasProperty('_dirty_fields')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$dirty = $ref->getProperty('_dirty_fields');
|
||||||
|
$dirty->setAccessible(true);
|
||||||
|
$new_values = $dirty->getValue($orm);
|
||||||
|
$changes = array_combine(array_keys($new_values), array_fill(0, count($new_values), ['old' => '', 'new' => '']));
|
||||||
|
if ($this->isNew()) {
|
||||||
|
$old = (object) array_combine(array_keys($new_values), array_fill(0, count($new_values), ''));
|
||||||
|
} else {
|
||||||
|
$old = model(get_called_class())->findOne($this->{$this->getId()});
|
||||||
|
}
|
||||||
|
foreach ($new_values as $column => $value) {
|
||||||
|
$changes[$column] = ['column' => $column, 'old' => $old->$column, 'new' => $value];
|
||||||
|
}
|
||||||
|
$action = '[' . get_called_class() . ']';
|
||||||
|
doLog($user, $action, $changes);
|
||||||
|
}
|
||||||
|
public function getId()
|
||||||
|
{
|
||||||
|
if (property_exists(get_called_class(), '_id_column')) {
|
||||||
|
return static::$_id_column;
|
||||||
|
}
|
||||||
|
return $this->id;
|
||||||
|
}
|
||||||
|
public function save()
|
||||||
|
{
|
||||||
|
$ref = new \ReflectionObject($this);
|
||||||
|
if ($ref->hasProperty('_timestamps')) {
|
||||||
|
$ref = $ref->getProperty('_timestamps');
|
||||||
|
$ref->setAccessible(true);
|
||||||
|
if ($ref->getValue()) {
|
||||||
|
if ($this->is_new()) {
|
||||||
|
$this->setExpr('created_at', 'NOW()');
|
||||||
|
}
|
||||||
|
$this->setExpr('updated_at', 'NOW()');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!\ORM::getDb()->inTransaction()) {
|
||||||
|
\ORM::getDb()->beginTransaction();
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
parent::save();
|
||||||
|
if (\ORM::getDb()->inTransaction()) {
|
||||||
|
\ORM::getDb()->commit();
|
||||||
|
}
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
if (\ORM::getDb()->inTransaction()) {
|
||||||
|
\ORM::getDb()->rollBack();
|
||||||
|
}
|
||||||
|
throw $e;
|
||||||
|
}
|
||||||
|
$this->log();
|
||||||
|
}
|
||||||
|
public function __call($method, $args)
|
||||||
|
{
|
||||||
|
if (!method_exists($this, $method)) {
|
||||||
|
$str = '' . Stringy::create($method)->underscored();
|
||||||
|
if (method_exists($this, $str)) {
|
||||||
|
return call_user_func_array([$this, $str], $args);
|
||||||
|
}
|
||||||
|
throw new \BadMethodCallException($method . ' not found in ' . get_class($this));
|
||||||
|
}
|
||||||
|
return call_user_func_array([$this, $str], $args);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
20
common/Alias/NewEstado.php
Normal file
20
common/Alias/NewEstado.php
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<?php
|
||||||
|
namespace App\Alias;
|
||||||
|
|
||||||
|
use Carbon\Carbon;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Aldarien
|
||||||
|
* @property int id
|
||||||
|
* @property Date fecha
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
class NewEstado extends NewModel
|
||||||
|
{
|
||||||
|
public function fecha()
|
||||||
|
{
|
||||||
|
return Carbon::parse($this->fecha, config('app.timezone'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
9
common/Alias/NewModel.php
Normal file
9
common/Alias/NewModel.php
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<?php
|
||||||
|
namespace App\Alias;
|
||||||
|
|
||||||
|
class NewModel extends Model
|
||||||
|
{
|
||||||
|
protected static $_connection_name = 'mysql_copy';
|
||||||
|
protected static $_timestamps = true;
|
||||||
|
}
|
||||||
|
?>
|
15
common/Alias/NewTipo.php
Normal file
15
common/Alias/NewTipo.php
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<?php
|
||||||
|
namespace App\Alias;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Aldarien
|
||||||
|
* @property int id
|
||||||
|
* @property string descripcion
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
class NewTipo extends NewModel
|
||||||
|
{
|
||||||
|
protected static $_timestamps = true;
|
||||||
|
}
|
||||||
|
?>
|
8
common/Alias/OldModel.php
Normal file
8
common/Alias/OldModel.php
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<?php
|
||||||
|
namespace Incoviba\Common\Alias;
|
||||||
|
|
||||||
|
class OldModel extends Model
|
||||||
|
{
|
||||||
|
protected static $_connection_name = 'mysql';
|
||||||
|
}
|
||||||
|
?>
|
Reference in New Issue
Block a user