diff --git a/skeleton/lean b/skeleton/cli similarity index 100% rename from skeleton/lean rename to skeleton/cli diff --git a/skeleton/composer.json.dist b/skeleton/composer.json.dist index 3492572..e972e99 100644 --- a/skeleton/composer.json.dist +++ b/skeleton/composer.json.dist @@ -8,17 +8,27 @@ ], "minimum-stability": "dev", "require": { - "php": "^8.2", + "php": "^8.4", "ext-apcu": "*", + "ext-sodium": "*", + "ext-bcmath": "*", "ext-json": "*", + "ext-readline": "*", "league/route": "^5.0.0-dev", "laminas/laminas-diactoros": "2.24.x-dev", "laminas/laminas-httphandlerrunner": "2.5.x-dev", "vlucas/phpdotenv": "^3.4@dev", "middlewares/whoops": "dev-master", - "ralouphie/getallheaders": "dev-master", + "ralouphie/getallheaders": "3.x", + "guzzlehttp/guzzle": "7.9.x-dev", + "symfony/mailer": "6.3.x-dev", + "league/oauth2-client": "dev-master", + "php-di/php-di": "dev-master", + "league/commonmark": "^2.7@dev", + "assets-package/ace": "dev-master", "mcnd/dump": "dev-master", "mcnd/storage": "dev-master", + "mcnd/cli": "dev-master", "mcnd/event": "dev-master", "mcnd/ulmus": "dev-master", "mcnd/ulmus-api": "dev-master", @@ -27,6 +37,7 @@ "mcnd/picea-ui": "dev-master", "mcnd/picea-asset": "dev-master", "mcnd/cronard": "dev-master", + "mcnd/lean-api": "dev-master", "mcnd/lean-console": "dev-master", "mcnd/kash": "dev-master", "mcnd/taxus": "dev-master", @@ -39,6 +50,10 @@ "type": "vcs", "url": "https://git.mcnd.ca/mcndave/cronard.git" }, + { + "type": "vcs", + "url": "https://git.mcnd.ca/mcndave/cli.git" + }, { "type": "vcs", "url": "https://git.mcnd.ca/mcndave/dump.git" @@ -51,6 +66,10 @@ "type": "vcs", "url": "https://git.mcnd.ca/mcndave/lean.git" }, + { + "type": "vcs", + "url": "https://git.mcnd.ca/mcndave/lean-api.git" + }, { "type": "vcs", "url": "https://git.mcnd.ca/mcndave/lean-console.git" @@ -118,6 +137,10 @@ { "type": "vcs", "url": "https://git.mcnd.ca/mcndave/negundo-client.git" + }, + { + "type": "vcs", + "url": "https://git.mcnd.ca/assets-package/ace.git" } ], "autoload": { @@ -136,6 +159,7 @@ "extra" : { "lean" : { "autoload": { + "order": 1000, "definitions" : [ "meta/definitions/definitions.php", "meta/definitions/storage.php", diff --git a/skeleton/src/Lib/ApiTrait.php b/skeleton/src/Lib/ApiTrait.php new file mode 100644 index 0000000..94c1d2d --- /dev/null +++ b/skeleton/src/Lib/ApiTrait.php @@ -0,0 +1,28 @@ +initializeController($picea, $session, $user, $breadcrumb, $eventManager); - } - - #[Ignore] - public function initializeController(Picea $picea, Session $session, UserInterface $user, \Notes\Breadcrumb\Breadcrumb $breadcrumb, EventManager $eventManager) { - $this->picea = $picea; - $this->session = $session; - $this->eventManager = $eventManager; - $this->breadcrumb = $breadcrumb; - $this->user = $user; - } - } \ No newline at end of file diff --git a/skeleton/src/Lib/Message.php b/skeleton/src/Lib/Message.php index cc16603..8ec3b51 100644 --- a/skeleton/src/Lib/Message.php +++ b/skeleton/src/Lib/Message.php @@ -2,9 +2,10 @@ namespace %NAMESPACE%\Lib; +use Lean\Api\Factory\MessageFactoryInterface; use Picea\Ui\Method\FormMessage; -class Message implements FormMessage { +class Message implements FormMessage, MessageFactoryInterface { const MESSAGE_TYPE = [ 'success' => [ @@ -34,7 +35,7 @@ class Message implements FormMessage { public ? string $header = null; - public function __construct(string $message, string $type = "error", ? string $header = null, ? string $class = null) + public function __construct(string $message = "", string $type = "error", ? string $header = null, ? string $class = null) { $this->message = $message; @@ -86,18 +87,33 @@ class Message implements FormMessage { return $this->type === "error"; } - public static function generateSuccess(string $message, ? string $header = null, ? string $class = null) : self + public static function generateSuccess(string $message, ? string $header = null, ? string $class = null) : MessageFactoryInterface { return new static($message, 'success', $header, $class); } - public static function generateError(string $message, ? string $header = null, ? string $class = null) : self + public static function generateError(string $message, ? string $header = null, ? string $class = null) : MessageFactoryInterface { return new static($message, 'error', $header, $class); } - public static function generateWarning(string $message, ? string $header = null, ? string $class = null) : self + public static function generateWarning(string $message, ? string $header = null, ? string $class = null) : MessageFactoryInterface { return new static($message, 'warning', $header, $class); } + + public static function generateInformation(string $message, ?string $header = null, ?string $class = null): MessageFactoryInterface + { + return new static($message, 'information', $header, $class); + } + + public static function generateDebug(string $message, ?string $header = null, ?string $class = null): MessageFactoryInterface + { + return new static($message, 'debug', $header, $class); + } + + public static function generateTrace(string $message, ?string $header = null, ?string $class = null): MessageFactoryInterface + { + return new static($message, 'trace', $header, $class); + } } diff --git a/src/Composer.php b/src/Composer.php index 3ffd7e2..d79f91d 100644 --- a/src/Composer.php +++ b/src/Composer.php @@ -102,7 +102,7 @@ class Composer throw new \UnexpectedValueException("Composer file 'composer.json' could not be found within your project's root folder."); } - return $content ??= file_exists($path) ? json_decode(file_get_contents($path), true) : false; + return $content ??= file_exists($path) ? json_decode(file_get_contents($path), true, 512, \JSON_THROW_ON_ERROR) : false; } protected static function getNamespaceFromAutoload(Event $event) : ? string @@ -125,7 +125,7 @@ class Composer $event->getIO()->writeError("Your composer file do not seem to contains a valid psr-4 project pointing to the src folder."); - return null; + return false; } protected static function createPath(... $path) : string diff --git a/src/ControllerTrait.php b/src/ControllerTrait.php index e2b2529..28b4b40 100644 --- a/src/ControllerTrait.php +++ b/src/ControllerTrait.php @@ -21,9 +21,6 @@ use function file_get_contents; #[Route(method: [ "GET", "POST" ])] trait ControllerTrait { - ##[Inject] - # public \Notes\Breadcrumb\Breadcrumb $breadcrumb; - #[Inject] public Session $session;