This commit is contained in:
Dave Mc Nicoll 2023-10-09 14:02:19 -04:00
commit d30e687e21
16 changed files with 82 additions and 39 deletions

View File

@ -11,24 +11,6 @@ use Notes\CLI\CommandFetcher;
use Lean\Lean; use Lean\Lean;
return [ 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) { CommandFetcher::class => function($c) {
$fetcher = new CommandFetcher(null, null, $c->get('cli.caching')); $fetcher = new CommandFetcher(null, null, $c->get('cli.caching'));

View File

@ -7,6 +7,7 @@ use Laminas\Diactoros\Response\HtmlResponse;
use Picea\{ Picea, Caching\Cache, Caching\Opcache, Compiler, Compiler\Context, Compiler\BaseContext, FileFetcher, Language\DefaultRegistrations, Method\Request }; use Picea\{ Picea, Caching\Cache, Caching\Opcache, Compiler, Compiler\Context, Compiler\BaseContext, FileFetcher, Language\DefaultRegistrations, Method\Request };
use Picea\Extension\{ LanguageHandler, LanguageExtension, TitleExtension, NumberExtension, UrlExtension }; use Picea\Extension\{ LanguageHandler, LanguageExtension, TitleExtension, NumberExtension, UrlExtension };
use Picea\Ui\{ Method, Ui }; use Picea\Ui\{ Method, Ui };
use Picea\Asset\Asset;
return [ return [
Picea::class => function($c) { Picea::class => function($c) {
@ -33,6 +34,11 @@ return [
{ {
parent::registerAll($compiler); parent::registerAll($compiler);
( new Ui() )->registerFormExtension($compiler); ( new Ui() )->registerFormExtension($compiler);
if ( class_exists('Picea\\Asset\\Asset') ) {
( new Asset() )->registerExtension($compiler);
}
} }
}); });

9
skeleton/lean Executable file
View File

@ -0,0 +1,9 @@
#!/bin/php
<?php
try {
require_once(__DIR__."/src/Kernel.php");
}
catch(\Throwable $t) {
echo sprintf("%s [ %s ]" , $t->getMessage(), var_export($t->getTrace(), true));
}

View File

@ -30,6 +30,12 @@ return [
'charset' => getenv("DATABASE_CHARSET"), 'charset' => getenv("DATABASE_CHARSET"),
], ],
], ],
#'sqlite' => [
# 'adapter' => getenv("SQLITE_ADAPTER"),
# 'path' => getenv('PROJECT_PATH') . DIRECTORY_SEPARATOR . getenv("SQLITE_PATH"),
# 'pragma' => explode(',', getenv("SQLITE_PRAGMA")),
#],
] ]
] ]
]; ];

View File

@ -63,6 +63,4 @@ return [
return $email; return $email;
}, },
PermissionGrantInterface::class => create(%NAMESPACE%\PrivilegeGrantAccess::class)->constructor(get(ServerRequestInterface::class), get(Session::class)),
]; ];

View File

@ -18,5 +18,5 @@ return [
); );
}, },
PermissionGrantInterface::class => create(DefaultPermissionGrant::class)->constructor(get(ServerRequestInterface::class), get(Session::class)), PermissionGrantInterface::class => create(%NAMESPACE%\PrivilegeGrantAccess::class)->constructor(get(ServerRequestInterface::class), get(Session::class)),
]; ];

View File

@ -14,8 +14,6 @@ return [
$adapter = new ConnectionAdapter('default', $c->get('config')['ulmus'], true); $adapter = new ConnectionAdapter('default', $c->get('config')['ulmus'], true);
$adapter->resolveConfiguration(); $adapter->resolveConfiguration();
$adapter->connect();
return $adapter; return $adapter;
}, },

View File

@ -4,11 +4,12 @@ namespace %NAMESPACE%\Controller;
use Psr\Http\Message\{ServerRequestInterface, ResponseInterface }; use Psr\Http\Message\{ServerRequestInterface, ResponseInterface };
use Notes\Route\Attribute\Method\Route;
use %NAMESPACE%\{ Lib, Entity, Form, }; use %NAMESPACE%\{ Lib, Entity, Form, };
use function %NAMESPACE%\View\{ _, lang, url, route, form }; use function %NAMESPACE%\View\{ _, lang, url, route, form };
#[Language("%APPKEY%.home")]
class Home { class Home {
use Lib\ControllerTrait; use Lib\ControllerTrait;

View File

@ -3,7 +3,7 @@
namespace %NAMESPACE%\Entity; namespace %NAMESPACE%\Entity;
use Ulmus\Entity\Field\Datetime; use Ulmus\Entity\Field\Datetime;
use Ulmus\{Attribute\Obj\Table; use Ulmus\{Attribute\Obj\Table};
use %NAMESPACE%\Lib; use %NAMESPACE%\Lib;

View File

@ -8,7 +8,8 @@ use Ulmus\User\Entity\User;
use Ulmus\User\Lib\Authenticate; use Ulmus\User\Lib\Authenticate;
use Notes\Route\Attribute\Object\Route; use Notes\Route\Attribute\Object\Route;
use Notes\Security\Attribute\Security; use Notes\Security\Attribute\Security;
use %NAMESPACE%\Entity;
use %NAMESPACE%\{ Entity, Lib, Form };
use Mcnd\Event\EventManager; use Mcnd\Event\EventManager;

View File

@ -2,11 +2,8 @@
namespace %NAMESPACE%\Middleware; namespace %NAMESPACE%\Middleware;
use Psr\Http\Server\MiddlewareInterface; use Psr\Http\Server\{ RequestHandlerInterface, MiddlewareInterface };
use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Message\{ ResponseInterface, ServerRequestInterface };
use Psr\Http\Server\RequestHandlerInterface;
use Psr\Http\Message\ResponseInterface;
use Storage\Session; use Storage\Session;
class Authentication implements MiddlewareInterface { class Authentication implements MiddlewareInterface {
@ -23,9 +20,6 @@ class Authentication implements MiddlewareInterface {
$this->session = $session; $this->session = $session;
} }
#[param ServerRequestInterface $request]
#[param RequestHandlerInterface $handler]
#[return ResponseInterface]
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
{ {
$user = $this->session->get( $this->sessionUserVariable() ); $user = $this->session->get( $this->sessionUserVariable() );
@ -37,8 +31,6 @@ class Authentication implements MiddlewareInterface {
return $handler->handle($request); return $handler->handle($request);
} }
#[param string|null sessionUserVariable]
#[return mixed]
public function sessionUserVariable(?string $set = null) : string public function sessionUserVariable(?string $set = null) : string
{ {
return $set !== null ? $this->sessionUserVariable = $set : $this->sessionUserVariable; return $set !== null ? $this->sessionUserVariable = $set : $this->sessionUserVariable;

View File

@ -5,7 +5,6 @@
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>{% section "head.title" %}{{ title() }} — {{ lang('application_name') }}{% endsection %}</title> <title>{% section "head.title" %}{{ title() }} — {{ lang('application_name') }}{% endsection %}</title>
</style>
</head> </head>
{% endsection %} {% endsection %}

View File

@ -6,4 +6,8 @@
<div class="main"> <div class="main">
Hello World :) ! Hello World :) !
</div> </div>
<div>
<a href="{% route 'lean.console:home' %}">Accéder à la console LEAN</a>
</div>
{% endsection %} {% endsection %}

View File

@ -51,7 +51,11 @@ trait ControllerTrait {
public function renderRawView(string $view, ?array $variables = null) : string public function renderRawView(string $view, ?array $variables = null) : string
{ {
return $this->picea->renderHtml($view, $variables ?? [], $this); if ( null === $content = $this->picea->renderHtml($view, $variables ?? [], $this) ) {
throw new \RuntimeException("Picea's renderHtml() returned NULL as result ; an error occured within your template `$view`.");
}
return $content;
} }
public function renderView(string $view, ?array $variables = null) : ResponseInterface public function renderView(string $view, ?array $variables = null) : ResponseInterface

43
src/File.php Normal file
View File

@ -0,0 +1,43 @@
<?php
namespace Lean;
class File
{
public static function tail(string $path, int $lines = 10) : false|array
{
$handle = fopen($path, "r");
$counter = $lines;
$pos = -2;
$beginning = false;
$text = array();
while ($counter && ! $beginning) {
$t = "";
while ($t !== PHP_EOL) {
if(fseek($handle, $pos, SEEK_END) == -1) {
$beginning = true;
break;
}
$t = fgetc($handle);
$pos --;
}
$counter --;
if ($beginning) {
rewind($handle);
}
$text[$lines - $counter - 1] = fgets($handle);
}
fclose ($handle);
return array_reverse($text);
}
}

View File

@ -133,7 +133,7 @@ class Lean
$path = dirname(__DIR__) . "/meta/definitions/"; $path = dirname(__DIR__) . "/meta/definitions/";
return array_merge( return array_merge(
class_exists(\Mcnd\CLI\Middleware::class) ? require($path . "cli.php") : [], class_exists(\Mcnd\CLI\CliMiddleware::class) ? require($path . "cli.php") : [],
class_exists(\Cronard\CronardMiddleware::class) ? require($path . "cronard.php") : [], class_exists(\Cronard\CronardMiddleware::class) ? require($path . "cronard.php") : [],
require($path . "email.php"), require($path . "email.php"),
require($path . "event.php"), require($path . "event.php"),