postDelete hook, imagick dependency, rrmdir

This commit is contained in:
Roman 2023-01-12 20:13:20 +01:00
parent b0e98033b4
commit 83cf7d1a04
4 changed files with 22 additions and 2 deletions

@ -125,6 +125,7 @@ abstract class DatabaseEntity implements ArrayAccess, JsonSerializable {
public function preInsert(array &$row) { } public function preInsert(array &$row) { }
public function postFetch(SQL $sql, array $row) { } public function postFetch(SQL $sql, array $row) { }
public static function getPredefinedValues(): array { return []; } public static function getPredefinedValues(): array { return []; }
public function postDelete() { }
public static function fromRow(SQL $sql, array $row): static { public static function fromRow(SQL $sql, array $row): static {
$handler = self::getHandler($sql); $handler = self::getHandler($sql);
@ -207,6 +208,7 @@ abstract class DatabaseEntity implements ArrayAccess, JsonSerializable {
} }
if ($handler->delete($this->id)) { if ($handler->delete($this->id)) {
$this->postDelete();
$this->id = null; $this->id = null;
return true; return true;
} }

@ -285,3 +285,20 @@ function isClass(string $str): bool {
$path = getClassPath($str); $path = getClassPath($str);
return is_file($path) && class_exists($str); return is_file($path) && class_exists($str);
} }
function rrmdir(string $dir): void {
if (is_dir($dir)) {
$objects = scandir($dir);
foreach ($objects as $object) {
if ($object !== "." && $object !== "..") {
$path = $dir . DIRECTORY_SEPARATOR . $object;
if (is_dir($path) && !is_link($path)) {
rrmdir($path);
} else {
unlink($path);
}
}
}
rmdir($dir);
}
}

@ -11,8 +11,8 @@ RUN mkdir -p /application/core/Configuration /var/www/.gnupg && \
# YAML + dev dependencies + additional packages # YAML + dev dependencies + additional packages
RUN apt-get update -y && \ RUN apt-get update -y && \
apt-get install -y libyaml-dev libzip-dev libgmp-dev libpng-dev gnupg2 $ADDITIONAL_PACKAGES && \ apt-get install -y libyaml-dev libzip-dev libgmp-dev libpng-dev libmagickwand-dev gnupg2 $ADDITIONAL_PACKAGES && \
pecl install yaml && docker-php-ext-enable yaml && \ printf "\n" | pecl install yaml imagick && docker-php-ext-enable yaml imagick && \
docker-php-ext-install gd docker-php-ext-install gd
# NodeJS # NodeJS

1
img/.gitignore vendored Normal file

@ -0,0 +1 @@
uploads/