[wip] code smell, psr-12, mvc, other, forgot by 1 year.

This commit is contained in:
2023-01-24 19:04:15 +02:00
parent 775a56c4c8
commit 2bb6bef614
13 changed files with 254 additions and 112 deletions
+50
View File
@@ -0,0 +1,50 @@
<?php
namespace Battles\Models;
use Battles\Database\Db;
class Model
{
protected static string $tableName = '';
protected static string $primaryKey = '';
protected array $columns = [];
protected function getColumnValue($column)
{
return $this->columns[$column];
}
protected function setColumnValue($column, $value)
{
$this->columns[$column] = $value;
}
/**
* Полная перезапись. Отсутствующие параметры превратятся в default|null.
* @return void
*/
protected function save()
{
$q = 'replace into ' . self::$tableName . ' (' . implode(', ', array_keys($this->columns)) . ') values(';
$keys = [];
foreach ($this->columns as $key => $value) {
$keys[':' . $key] = $value;
}
$q .= implode(', ', array_keys($keys)) . ')';
Db::getInstance()->execute($q, $keys);
}
protected function updateByPrimaryKey()
{
$q = 'update ' . self::$tableName . ' set ';
$keys = [];
foreach ($this->columns as $key => $value) {
$keys[':' . $key] = $value;
$q .= $key . ' = :' . $key . ', ';
}
$q = rtrim($q, ',');
$q .= 'where ' . self::$primaryKey . ' = :' . self::$primaryKey;
Db::getInstance()->execute($q, $keys);
}
}