- Working on CLI modules
This commit is contained in:
parent
52c7407519
commit
41083c767a
|
@ -0,0 +1,51 @@
|
|||
<?php
|
||||
|
||||
use function DI\autowire, DI\create, DI\get;
|
||||
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
|
||||
use Mcnd\CLI\CliMiddleware;
|
||||
|
||||
use Notes\CLI\CommandFetcher;
|
||||
|
||||
use Lean\Lean;
|
||||
|
||||
return [
|
||||
/*CronardMiddleware::class => function($c) {
|
||||
$cronardMiddleware = new CronardMiddleware($c, getenv('CRON_KEY'), function() : ResponseInterface {
|
||||
return new HtmlResponse(sprintf("%s - cron task begin...", date('Y-m-d H:i:s')));
|
||||
}, [], $c->get(TaskFetcher::class));
|
||||
|
||||
return $cronardMiddleware->fromFile(getenv("META_PATH")."/crontab.php")->fromAnnotations($c->get(TaskFetcher::class));
|
||||
},
|
||||
|
||||
TaskFetcher::class => function($c) {
|
||||
$fetcher = new TaskFetcher(null, null, $c->get('cronard.caching'));
|
||||
|
||||
$fetcher->setFolderList(array_map(function($item) {
|
||||
return $item;
|
||||
}, $c->get(Lean::class)->getCronard()));
|
||||
|
||||
return $fetcher;
|
||||
},*/
|
||||
|
||||
CommandFetcher::class => function($c) {
|
||||
$fetcher = new CommandFetcher(null, null, $c->get('cli.caching'));
|
||||
|
||||
$fetcher->setFolderList(array_map(function($item) {
|
||||
return $item;
|
||||
}, $c->get(Lean::class)->getCli()));
|
||||
|
||||
return $fetcher;
|
||||
},
|
||||
|
||||
CliMiddleware::class => function($c) {
|
||||
return new CliMiddleware($c, $c->get('cli.response:default'), $c->get(CommandFetcher::class));
|
||||
},
|
||||
|
||||
'cli.response:default' => function($c) {
|
||||
return function() {
|
||||
return new \Laminas\Diactoros\Response\TextResponse("This is the default response from CLI middleware which indicates that no command were registered for this application.\n");
|
||||
};
|
||||
},
|
||||
];
|
|
@ -81,7 +81,7 @@ return [
|
|||
};
|
||||
},
|
||||
|
||||
'routes.middlewares' => [ "dump", "errorHandler", SessionMiddleware::class, CronardMiddleware::class, Mcnd\Event\EventMiddleware::class, HttpBasicAuthentication::class ],
|
||||
'routes.middlewares' => [ "dump", "errorHandler", SessionMiddleware::class, CronardMiddleware::class, Mcnd\Event\EventMiddleware::class, Mcnd\CLI\CliMiddleware::class, ],
|
||||
|
||||
'routes.list' => function($c) {
|
||||
return function (ContainerInterface $container) {
|
||||
|
@ -94,7 +94,6 @@ return [
|
|||
}
|
||||
|
||||
$routing = $container->get(Lean\Routing::class);
|
||||
|
||||
$routing->registerRoute($container, getenv('URL_BASE'));
|
||||
|
||||
return $router;
|
||||
|
|
|
@ -6,6 +6,7 @@ use Laminas\Diactoros\Response\HtmlResponse;
|
|||
|
||||
use TheBugs\JavascriptMiddleware;
|
||||
|
||||
|
||||
use Cronard\CronardMiddleware,
|
||||
Notes\Cronard\TaskFetcher;
|
||||
|
||||
|
|
|
@ -34,6 +34,10 @@ return array_merge(
|
|||
'cronard' => [
|
||||
'%ESCAPED_NAMESPACE%\\Controller' => implode(DIRECTORY_SEPARATOR, [ getenv("PROJECT_PATH"), 'src', 'Controller', '' ]),
|
||||
],
|
||||
|
||||
'cli' => [
|
||||
'%ESCAPED_NAMESPACE%\\Controller' => implode(DIRECTORY_SEPARATOR, [ getenv("PROJECT_PATH"), 'src', 'Controller', '' ]),
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
|
|
|
@ -15,5 +15,6 @@ return [
|
|||
'breadcrumbs.caching' => create(Kash\ArrayCache::class)->constructor( get(Kash\CacheInvalidator::class), "lean.breadcrumbs", 30),
|
||||
'ulmus.caching' => create(Kash\ArrayCache::class)->constructor( get(Kash\CacheInvalidator::class), "ulmus.entities", 30),
|
||||
'cronard.caching' => create(Kash\ArrayCache::class)->constructor( get(Kash\CacheInvalidator::class), "lean.cronards", 30),
|
||||
'events.caching' => create(Kash\ArrayCache::class)->constructor( get(Kash\CacheInvalidator::class), "lean.events", random_int(3600, 7200)),
|
||||
'events.caching' => create(Kash\ArrayCache::class)->constructor( get(Kash\CacheInvalidator::class), "lean.events", 30),
|
||||
'cli.caching' => create(Kash\ArrayCache::class)->constructor( get(Kash\CacheInvalidator::class), "lean.cli", 30),
|
||||
];
|
||||
|
|
|
@ -49,4 +49,5 @@ return [
|
|||
'ulmus.caching' => create(Kash\ApcuCache::class)->constructor( get(Kash\CacheInvalidator::class), "ulmus.entities", random_int(3600, 7200)),
|
||||
'cronard.caching' => create(Kash\ApcuCache::class)->constructor( get(Kash\CacheInvalidator::class), "lean.cronards", random_int(3600, 7200)),
|
||||
'events.caching' => create(Kash\ApcuCache::class)->constructor( get(Kash\CacheInvalidator::class), "lean.events", random_int(3600, 7200)),
|
||||
'cli.caching' => create(Kash\ApcuCache::class)->constructor( get(Kash\CacheInvalidator::class), "lean.cli", random_int(3600, 7200)),
|
||||
];
|
|
@ -25,7 +25,7 @@ class PrivilegeGrantAccess implements PermissionGrantInterface {
|
|||
*/
|
||||
public function is_dev() : bool
|
||||
{
|
||||
return false;
|
||||
return getenv('DEBUG');
|
||||
}
|
||||
|
||||
public function is_admin(User $user) : bool
|
||||
|
|
|
@ -16,6 +16,8 @@ class Application
|
|||
|
||||
public array $routes;
|
||||
|
||||
public array $cli;
|
||||
|
||||
public array $cronard;
|
||||
|
||||
public array $entities;
|
||||
|
@ -73,10 +75,15 @@ class Application
|
|||
if (is_array($data['cronard'] ?? false)) {
|
||||
$this->cronard = $data['cronard'];
|
||||
}
|
||||
|
||||
if (is_array($data['events'] ?? false)) {
|
||||
$this->events = $data['events'];
|
||||
}
|
||||
|
||||
if (is_array($data['cli'] ?? false)) {
|
||||
$this->cli = $data['cli'];
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
|
@ -117,6 +117,22 @@ trait ControllerTrait {
|
|||
return new FileDownloadResponse($path, $code, $headers);
|
||||
}
|
||||
|
||||
public function renderCLI(ServerRequestInterface $request, mixed $data) : ResponseInterface
|
||||
{
|
||||
if ($data instanceof \JsonSerializable ) {
|
||||
return $this->renderJson(
|
||||
$data
|
||||
);
|
||||
}
|
||||
elseif ( is_array($data) ) {
|
||||
var_export($data);
|
||||
}
|
||||
|
||||
return $this->renderText(
|
||||
$data . PHP_EOL
|
||||
);
|
||||
}
|
||||
|
||||
public function fromResponse(ResponseInterface $response)
|
||||
{
|
||||
if ( $response->getStatusCode() === 200 ) {
|
||||
|
|
|
@ -83,6 +83,11 @@ class Lean
|
|||
return array_merge(...array_map(fn($app) => $app->cronard ?? [], $this->applications));
|
||||
}
|
||||
|
||||
public function getCLI() : array
|
||||
{
|
||||
return array_merge(...array_map(fn($app) => $app->cli ?? [], $this->applications));
|
||||
}
|
||||
|
||||
public function getEvents() : array
|
||||
{
|
||||
return array_merge(...array_map(fn($app) => $app->events ?? [], $this->applications));
|
||||
|
@ -128,6 +133,7 @@ class Lean
|
|||
$path = dirname(__DIR__) . "/meta/definitions/";
|
||||
|
||||
return array_merge(
|
||||
require($path . "cli.php"),
|
||||
require($path . "cronard.php"),
|
||||
require($path . "email.php"),
|
||||
require($path . "event.php"),
|
||||
|
|
Loading…
Reference in New Issue