bugfix
This commit is contained in:
parent
6dcd7031bb
commit
cee54a1946
@ -14,7 +14,7 @@ namespace Core\API {
|
|||||||
|
|
||||||
public function __construct(Context $context, bool $externalCall, array $params) {
|
public function __construct(Context $context, bool $externalCall, array $params) {
|
||||||
parent::__construct($context, $externalCall, $params);
|
parent::__construct($context, $externalCall, $params);
|
||||||
$this->routerCachePath = getClassPath(self::ROUTER_CACHE_CLASS);
|
$this->routerCachePath = WEBROOT . DIRECTORY_SEPARATOR . getClassPath(self::ROUTER_CACHE_CLASS);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function toggleRoute(int $id, bool $active): bool {
|
protected function toggleRoute(int $id, bool $active): bool {
|
||||||
|
@ -419,9 +419,11 @@ class MySQL extends SQL {
|
|||||||
$returns = $procedure->getReturns();
|
$returns = $procedure->getReturns();
|
||||||
$paramDefs = [];
|
$paramDefs = [];
|
||||||
|
|
||||||
foreach ($procedure->getParameters() as $param) {
|
foreach ($procedure->getParameters() as $parameter) {
|
||||||
if ($param instanceof Column) {
|
if ($parameter instanceof Column) {
|
||||||
$paramDefs[] = $this->getParameterDefinition($param);
|
$paramDefs[] = $this->getParameterDefinition($parameter);
|
||||||
|
} else if ($parameter instanceof CurrentTable) {
|
||||||
|
$paramDefs[] = $this->getParameterDefinition($parameter->toColumn());
|
||||||
} else {
|
} else {
|
||||||
$this->lastError = $this->logger->error("PROCEDURE parameter type " . gettype($returns) . " is not implemented yet");
|
$this->lastError = $this->logger->error("PROCEDURE parameter type " . gettype($returns) . " is not implemented yet");
|
||||||
return null;
|
return null;
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
namespace Core\Driver\SQL\Query;
|
namespace Core\Driver\SQL\Query;
|
||||||
|
|
||||||
use Core\Driver\SQL\Column\Column;
|
use Core\Driver\SQL\Column\Column;
|
||||||
|
use Core\Driver\SQL\Expression\Expression;
|
||||||
use Core\Driver\SQL\SQL;
|
use Core\Driver\SQL\SQL;
|
||||||
|
|
||||||
class CreateProcedure extends Query {
|
class CreateProcedure extends Query {
|
||||||
@ -21,7 +22,7 @@ class CreateProcedure extends Query {
|
|||||||
$this->returns = NULL;
|
$this->returns = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function param(Column $parameter): CreateProcedure {
|
public function param(Expression $parameter): CreateProcedure {
|
||||||
$this->parameters[] = $parameter;
|
$this->parameters[] = $parameter;
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
@ -2,10 +2,13 @@
|
|||||||
|
|
||||||
namespace Core\Driver\SQL\Type;
|
namespace Core\Driver\SQL\Type;
|
||||||
|
|
||||||
|
use Core\Driver\SQL\Column\Column;
|
||||||
|
use Core\Driver\SQL\Column\StringColumn;
|
||||||
use Core\Driver\SQL\Expression\Expression;
|
use Core\Driver\SQL\Expression\Expression;
|
||||||
use Core\Driver\SQL\MySQL;
|
use Core\Driver\SQL\MySQL;
|
||||||
use Core\Driver\SQL\PostgreSQL;
|
use Core\Driver\SQL\PostgreSQL;
|
||||||
use Core\Driver\SQL\SQL;
|
use Core\Driver\SQL\SQL;
|
||||||
|
use Exception;
|
||||||
|
|
||||||
class CurrentTable extends Expression {
|
class CurrentTable extends Expression {
|
||||||
|
|
||||||
@ -14,11 +17,15 @@ class CurrentTable extends Expression {
|
|||||||
|
|
||||||
function getExpression(SQL $sql, array &$params): string {
|
function getExpression(SQL $sql, array &$params): string {
|
||||||
if ($sql instanceof MySQL) {
|
if ($sql instanceof MySQL) {
|
||||||
// CURRENT_TABLE
|
return $sql->columnName("CURRENT_TABLE");
|
||||||
} else if ($sql instanceof PostgreSQL) {
|
} else if ($sql instanceof PostgreSQL) {
|
||||||
return "TG_TABLE_NAME";
|
return "TG_TABLE_NAME";
|
||||||
} else {
|
} else {
|
||||||
|
throw new Exception("CurrentTable Not implemented for driver type: " . get_class($sql));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
public function toColumn(): Column {
|
||||||
|
return new StringColumn("CURRENT_TABLE");
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -461,7 +461,7 @@ class DatabaseEntityHandler implements Persistable {
|
|||||||
|
|
||||||
$doInsert = false;
|
$doInsert = false;
|
||||||
foreach ($nmRelation->getProperties($this) as $property) {
|
foreach ($nmRelation->getProperties($this) as $property) {
|
||||||
if ($properties !== null || !in_array($property->getName(), $properties)) {
|
if ($properties !== null && !in_array($property->getName(), $properties)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -124,6 +124,14 @@ class RouterCache extends Router {
|
|||||||
}
|
}
|
||||||
";
|
";
|
||||||
|
|
||||||
|
$directory = dirname($file);
|
||||||
|
if (!is_dir($directory)) {
|
||||||
|
if (!mkdir($directory, 775, true)) {
|
||||||
|
$this->logger->severe("Could not create directory: $directory");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (@file_put_contents($file, $code) === false) {
|
if (@file_put_contents($file, $code) === false) {
|
||||||
$this->logger->severe("Could not write Router cache file: $file");
|
$this->logger->severe("Could not write Router cache file: $file");
|
||||||
return false;
|
return false;
|
||||||
|
@ -7,11 +7,15 @@ RUN mkdir -p /application/core/Configuration /var/www/.gnupg && \
|
|||||||
|
|
||||||
# YAML + dev dependencies
|
# YAML + dev dependencies
|
||||||
RUN apt-get update -y && \
|
RUN apt-get update -y && \
|
||||||
apt-get install -y libyaml-dev libzip-dev libgmp-dev libpng-dev gnupg2d nodejs npm && \
|
apt-get install -y libyaml-dev libzip-dev libgmp-dev libpng-dev gnupg2 && \
|
||||||
apt-get clean && \
|
|
||||||
pecl install yaml && docker-php-ext-enable yaml && \
|
pecl install yaml && docker-php-ext-enable yaml && \
|
||||||
docker-php-ext-install gd && \
|
docker-php-ext-install gd
|
||||||
npm install --global yarn && ln -s /usr/local/bin/yarn /usr/bin/yarn
|
|
||||||
|
# NodeJS
|
||||||
|
RUN curl -sL https://deb.nodesource.com/setup_14.x | bash - && \
|
||||||
|
apt-get update && \
|
||||||
|
apt-get -y install nodejs && \
|
||||||
|
npm install --global yarn
|
||||||
|
|
||||||
# Runkit for unit testing (no stable release available)
|
# Runkit for unit testing (no stable release available)
|
||||||
RUN pecl install runkit7-4.0.0a6 && docker-php-ext-enable runkit7 && \
|
RUN pecl install runkit7-4.0.0a6 && docker-php-ext-enable runkit7 && \
|
||||||
@ -20,5 +24,8 @@ RUN pecl install runkit7-4.0.0a6 && docker-php-ext-enable runkit7 && \
|
|||||||
# mysqli, zip, gmp
|
# mysqli, zip, gmp
|
||||||
RUN docker-php-ext-install mysqli zip gmp
|
RUN docker-php-ext-install mysqli zip gmp
|
||||||
|
|
||||||
|
# clean cache
|
||||||
|
RUN apt-get clean
|
||||||
|
|
||||||
COPY --from=composer /usr/bin/composer /usr/bin/composer
|
COPY --from=composer /usr/bin/composer /usr/bin/composer
|
||||||
USER www-data
|
USER www-data
|
Loading…
Reference in New Issue
Block a user