added autochatc database handler from DBmodel instance,

added set rootDir for Creator,
added deduct numeric (unix timestamp) for datetime column,
added method existsTable for Maintenance
This commit is contained in:
Igor Miňo 2025-06-01 19:22:50 +02:00
parent 8a3dfbe9f0
commit 877ca38c0b
3 changed files with 29 additions and 9 deletions

View File

@ -4,11 +4,20 @@ namespace TPsoft\DBmodel;
class Creator {
private $dbh;
private DBmodel $dbh;
private string $rootDir = '';
public function __construct($dbh) {
public function __construct(?DBmodel $dbh = null) {
if (is_null($dbh)) {
if (!is_null(DBmodel::$instance)) {
$this->dbh = DBmodel::$instance;
} else {
throw new \Exception('DB handler is null');
}
} else {
$this->dbh = $dbh;
}
}
public function interact() {
$name = $this->readline('New model name: ');
@ -97,7 +106,7 @@ class ".$name." extends \TPsoft\DBmodel\DBmodel {
public $"."tables = array(
'".$entity."' => array(
'name' => '".$entity."',
'name' => '".$tablename."',
'primary_key_name' => ".$primary_key_name.",
'allow_attributes' => array(
".implode(",\n\t\t\t\t", $allowed_attributes)."
@ -166,11 +175,14 @@ class ".$name." extends \TPsoft\DBmodel\DBmodel {
return $line;
}
public function rootDir() {
public function rootDir(?string $dir = null) {
if (!is_null($dir)) {
$this->rootDir = $dir;
}
if (strlen($this->rootDir) > 0) return $this->rootDir;
return dirname(dirname(__FILE__));
}
}
?>

View File

@ -674,12 +674,12 @@ class DBmodel
foreach ($data[$column] as $key => $val) {
$prefix = $this->extractPrefix($val, $where_prefixes);
$n_val = str_replace($prefix, '', $val);
$data[$column] = $prefix . date('Y-m-d H:i:s', strtotime($n_val));
$data[$column] = $prefix . date('Y-m-d H:i:s', is_numeric($n_val) ? $n_val : strtotime($n_val));
}
} else {
$prefix = $this->extractPrefix($data[$column], $where_prefixes);
$n_val = str_replace($prefix, '', $data[$column]);
$data[$column] = $prefix . date('Y-m-d H:i:s', strtotime($n_val));
$data[$column] = $prefix . date('Y-m-d H:i:s', is_numeric($n_val) ? $n_val : strtotime($n_val));
}
break;
}

View File

@ -24,7 +24,7 @@ class Maintenance
public string $lastMessage = '';
private DBmodel $dbh;
protected DBmodel $dbh;
public function __construct(?DBmodel $dbh)
{
@ -79,6 +79,14 @@ class Maintenance
return 0;
}
public function existsTable($table_name)
{
return $this->testDB(
'SHOW TABLES LIKE "' . $table_name . '"',
$table_name
);
}
public function checkDBTable($table_name, $definition)
{
if (strlen($table_name) <= 0) {