Move Release service class to container

This commit is contained in:
Peter Kokot
2019-01-25 23:46:21 +01:00
parent 8b0f4be53b
commit 956d298c91
8 changed files with 40 additions and 28 deletions

View File

@@ -64,8 +64,15 @@ $container->set(App\Auth::class, function ($c) {
return $auth;
});
$tmp = filectime($_SERVER['SCRIPT_FILENAME']);
$container->set('last_updated', date('D M d H:i:s Y', $tmp - date('Z', $tmp)) . ' UTC');
$container->set('auth_user', function ($c) {
return $c->get(App\Auth::class)->initUser();
});
$container->set('last_updated', function ($c) {
$tmp = filectime($_SERVER['SCRIPT_FILENAME']);
return date('D M d H:i:s Y', $tmp - date('Z', $tmp)).' UTC';
});
$container->set(App\Template\Engine::class, function ($c) {
$template = new App\Template\Engine(__DIR__.'/../templates');
@@ -82,6 +89,7 @@ $container->set(App\Template\Engine::class, function ($c) {
'auth' => $c->get(App\Auth::class),
'lastUpdated' => $c->get('last_updated'),
'onloadInlineJavaScript' => isset($GLOBALS['ONLOAD']) ? $GLOBALS['ONLOAD'] : '',
'authUser' => $c->get('auth_user'),
]);
return $template;
@@ -144,4 +152,23 @@ $container->set(App\Entity\Category::class, function ($c) {
return $category;
});
$container->set(App\Entity\Package::class, function ($c) {
$packageEntity = new App\Entity\Package();
$packageEntity->setDatabase($c->get(App\Database::class));
$packageEntity->setRest($c->get(App\Rest::class));
return $packageEntity;
});
$container->set(App\Release::class, function ($c) {
$release = new App\Release();
$release->setDatabase($c->get(App\Database::class));
$release->setAuthUser($c->get('auth_user'));
$release->setRest($c->get(App\Rest::class));
$release->setPackagesDir($c->get('packages_dir'));
$release->setPackage($c->get(App\Entity\Package::class));
return $release;
});
return $container;

View File

@@ -31,4 +31,5 @@ return [
'host' => $config->get('host'),
'tmp_dir' => $config->get('tmp_dir'),
'rest_dir' => $config->get('rest_dir'),
'packages_dir' => $config->get('packages_dir'),
];

View File

@@ -102,9 +102,7 @@ $database = $container->get(Database::class);
// Rest XML generator service
$rest = $container->get(Rest::class);
$packageEntity = new Package();
$packageEntity->setDatabase($database);
$packageEntity->setRest($rest);
$packageEntity = $container->get(Package::class);
// Initialize template engine
$template = $container->get(Engine::class);

View File

@@ -35,12 +35,8 @@ require_once __DIR__.'/bootstrap.php';
require_once __DIR__.'/pear-format-html.php';
$auth = $container->get(Auth::class);
$auth_user = $auth->initUser();
$auth_user = $container->get('auth_user');
if (!empty($_GET['logout']) && $_GET['logout'] === '1') {
$auth->logout();
}
$template->assign([
'authUser' => $auth_user,
]);

View File

@@ -43,12 +43,7 @@
use App\Release;
use \PEAR as PEAR;
$release = new Release();
$release->setDatabase($database);
$release->setAuthUser($auth_user);
$release->setRest($rest);
$release->setPackagesDir($config->get('packages_dir'));
$release->setPackage($packageEntity);
$release = $container->get(Release::class);
function error_404($obj) {
header('HTTP/1.0 404 Not Found');

View File

@@ -26,12 +26,7 @@ use App\BorderBox;
use App\Release;
use App\User;
$release = new Release();
$release->setDatabase($database);
$release->setAuthUser($auth_user);
$release->setRest($rest);
$release->setPackagesDir($config->get('packages_dir'));
$release->setPackage($packageEntity);
$release = $container->get(Release::class);
$auth->secure();

View File

@@ -28,12 +28,7 @@ use \PEAR_Config as PEAR_Config;
$auth->secure();
$release = new Release();
$release->setDatabase($database);
$release->setAuthUser($auth_user);
$release->setRest($rest);
$release->setPackagesDir($config->get('packages_dir'));
$release->setPackage($packageEntity);
$release = $container->get(Release::class);
$maintainer = new Maintainer();
$maintainer->setDatabase($database);

View File

@@ -100,6 +100,11 @@ class Container implements ContainerInterface
{
$entry = &$this->entries[$id];
// Entry is not a class but is wrapped in callable.
if (!class_exists($id) && is_callable($entry)) {
return $entry($this);
}
// Entry is a configuration parameter
if (!class_exists($id)) {
return $entry;