fix tests
Some checks are pending
CI / general_module_workflow_php (push) Waiting to run

This commit is contained in:
Dennis Eichhorn 2024-05-18 02:15:39 +00:00
parent a5ee11721f
commit a25870500e
6 changed files with 71 additions and 15 deletions

View File

@ -117,7 +117,13 @@ class MysqlGrammar extends Grammar
->from('information_schema.tables') ->from('information_schema.tables')
->where('table_schema', '=', $query->getConnection()->getDatabase()); ->where('table_schema', '=', $query->getConnection()->getDatabase());
return \rtrim($builder->toSql(), ';'); $sql = $builder->toSql();
foreach ($builder->binds as $bind) {
$query->bind($bind);
}
return \rtrim($sql, ';');
} }
/** /**
@ -138,7 +144,13 @@ class MysqlGrammar extends Grammar
->where('table_schema', '=', $query->getConnection()->getDatabase()) ->where('table_schema', '=', $query->getConnection()->getDatabase())
->andWhere('table_name', '=', $table); ->andWhere('table_name', '=', $table);
return \rtrim($builder->toSql(), ';'); $sql = $builder->toSql();
foreach ($builder->binds as $bind) {
$query->bind($bind);
}
return \rtrim($sql, ';');
} }
/** /**

View File

@ -44,7 +44,13 @@ class PostgresGrammar extends Grammar
->from('information_schema.tables') ->from('information_schema.tables')
->where('table_schema', '=', $query->getConnection()->getDatabase()); ->where('table_schema', '=', $query->getConnection()->getDatabase());
return \rtrim($builder->toSql(), ';'); $sql = $builder->toSql();
foreach ($builder->binds as $bind) {
$query->bind($bind);
}
return \rtrim($sql, ';');
} }
/** /**
@ -65,7 +71,13 @@ class PostgresGrammar extends Grammar
->where('table_schema', '=', $query->getConnection()->getDatabase()) ->where('table_schema', '=', $query->getConnection()->getDatabase())
->andWhere('table_name', '=', $table); ->andWhere('table_name', '=', $table);
return \rtrim($builder->toSql(), ';'); $sql = $builder->toSql();
foreach ($builder->binds as $bind) {
$query->bind($bind);
}
return \rtrim($sql, ';');
} }
/** /**

View File

@ -54,7 +54,13 @@ class SQLiteGrammar extends Grammar
->from('sqlite_master') ->from('sqlite_master')
->where('type', '=', 'table'); ->where('type', '=', 'table');
return \rtrim($builder->toSql(), ';'); $sql = $builder->toSql();
foreach ($builder->binds as $bind) {
$query->bind($bind);
}
return \rtrim($sql, ';');
} }
/** /**
@ -67,7 +73,13 @@ class SQLiteGrammar extends Grammar
->from('pragma_table_info(\'' . $table . '\')') ->from('pragma_table_info(\'' . $table . '\')')
->where('pragma_table_info(\'' . $table . '\')', '=', $table); ->where('pragma_table_info(\'' . $table . '\')', '=', $table);
return \rtrim($builder->toSql(), ';'); $sql = $builder->toSql();
foreach ($builder->binds as $bind) {
$query->bind($bind);
}
return \rtrim($sql, ';');
} }
/** /**

View File

@ -82,7 +82,13 @@ class SqlServerGrammar extends Grammar
->where('table_schema', '=', $query->getConnection()->getDatabase()) ->where('table_schema', '=', $query->getConnection()->getDatabase())
->andWhere('table_name', '=', $table); ->andWhere('table_name', '=', $table);
return \rtrim($builder->toSql(), ';'); $sql = $builder->toSql();
foreach ($builder->binds as $bind) {
$query->bind($bind);
}
return \rtrim($sql, ';');
} }
/** /**

View File

@ -53,7 +53,11 @@ abstract class StatusAbstract
* @var array<string, array> * @var array<string, array>
* @since 1.0.0 * @since 1.0.0
*/ */
private static array $routes = []; public static array $routes = [];
public static array $hooks = [];
private static array $cache = [];
/** /**
* Deactivate module. * Deactivate module.
@ -117,17 +121,17 @@ abstract class StatusAbstract
throw new PermissionException($destRoutePath); // @codeCoverageIgnore throw new PermissionException($destRoutePath); // @codeCoverageIgnore
} }
if (!isset(self::$routes[$destRoutePath])) { if (!isset(self::$cache[$destRoutePath])) {
/** @noinspection PhpIncludeInspection */ /** @noinspection PhpIncludeInspection */
self::$routes[$destRoutePath] = include $destRoutePath; self::$cache[$destRoutePath] = include $destRoutePath;
} }
/** @noinspection PhpIncludeInspection */ /** @noinspection PhpIncludeInspection */
$moduleRoutes = include $srcRoutePath; $moduleCache = include $srcRoutePath;
self::$routes[$destRoutePath] = \array_merge_recursive(self::$routes[$destRoutePath], $moduleRoutes); self::$cache[$destRoutePath] = \array_merge_recursive(self::$cache[$destRoutePath], $moduleCache);
\file_put_contents($destRoutePath, '<?php return ' . ArrayParser::serializeArray(self::$routes[$destRoutePath]) . ';', \LOCK_EX); \file_put_contents($destRoutePath, '<?php return ' . ArrayParser::serializeArray(self::$cache[$destRoutePath]) . ';', \LOCK_EX);
} }
/** /**
@ -158,7 +162,11 @@ abstract class StatusAbstract
*/ */
public static function activateRoutesHooks(ModuleInfo $info, string $type, ?ApplicationInfo $appInfo = null) : void public static function activateRoutesHooks(ModuleInfo $info, string $type, ?ApplicationInfo $appInfo = null) : void
{ {
$directories = new Directory(static::PATH . '/' . $type); self::$cache = $type === 'Routes'
? self::$routes
: self::$hooks;
$directories = new Directory(static::PATH . '/' . $type);
/** @var Directory|File $child */ /** @var Directory|File $child */
foreach ($directories as $child) { foreach ($directories as $child) {
@ -192,6 +200,12 @@ abstract class StatusAbstract
); );
} }
} }
if ($type === 'Routes') {
self::$routes = self::$cache;
} else {
self::$hooks = self::$cache;
}
} }
/** /**

View File

@ -139,7 +139,7 @@ final class BuilderTest extends \PHPUnit\Framework\TestCase
} elseif ($con instanceof SqlServerConnection) { } elseif ($con instanceof SqlServerConnection) {
$sql = 'SELECT * FROM [information_schema].[columns] WHERE [table_schema] = ? AND [table_name] = ?;'; $sql = 'SELECT * FROM [information_schema].[columns] WHERE [table_schema] = ? AND [table_name] = ?;';
} elseif ($con instanceof SQLiteConnection) { } elseif ($con instanceof SQLiteConnection) {
$sql = 'SELECT * FROM pragma_table_info(?) WHERE pragma_table_info(\'test\') = ?;'; $sql = 'SELECT * FROM pragma_table_info(\'test\') WHERE pragma_table_info(\'test\') = ?;';
} }
$sql = \strtr($sql, '[]', $iS . $iE); $sql = \strtr($sql, '[]', $iS . $iE);