diff --git a/composer.json b/composer.json index cbe244e..8eb6d0b 100644 --- a/composer.json +++ b/composer.json @@ -23,7 +23,8 @@ "prefer-stable": true, "require": { "php": ">=8.4", - "webifycms/ext-base": "dev-main" + "webifycms/ext-base": "dev-main", + "oomphinc/composer-installers-extender": "^2.0" }, "require-dev": { "webifycms/dev-tools": "^1.0", @@ -43,7 +44,6 @@ } ], "config": { - "process-timeout": 1800, "allow-plugins": { "oomphinc/composer-installers-extender": true, "composer/installers": true @@ -90,4 +90,4 @@ ] } } -} \ No newline at end of file +} diff --git a/composer.lock b/composer.lock index e42df3d..395253b 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "f9b344cbbd6ad493461e7d3263f1e36e", + "content-hash": "1515a755c646718407313934f197adc7", "packages": [ { "name": "brick/math", @@ -134,6 +134,152 @@ ], "time": "2024-02-09T16:56:22+00:00" }, + { + "name": "composer/installers", + "version": "v2.3.0", + "source": { + "type": "git", + "url": "https://github.com/composer/installers.git", + "reference": "12fb2dfe5e16183de69e784a7b84046c43d97e8e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/installers/zipball/12fb2dfe5e16183de69e784a7b84046c43d97e8e", + "reference": "12fb2dfe5e16183de69e784a7b84046c43d97e8e", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0 || ^2.0", + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "composer/composer": "^1.10.27 || ^2.7", + "composer/semver": "^1.7.2 || ^3.4.0", + "phpstan/phpstan": "^1.11", + "phpstan/phpstan-phpunit": "^1", + "symfony/phpunit-bridge": "^7.1.1", + "symfony/process": "^5 || ^6 || ^7" + }, + "type": "composer-plugin", + "extra": { + "class": "Composer\\Installers\\Plugin", + "branch-alias": { + "dev-main": "2.x-dev" + }, + "plugin-modifies-install-path": true + }, + "autoload": { + "psr-4": { + "Composer\\Installers\\": "src/Composer/Installers" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kyle Robinson Young", + "email": "kyle@dontkry.com", + "homepage": "https://github.com/shama" + } + ], + "description": "A multi-framework Composer library installer", + "homepage": "https://composer.github.io/installers/", + "keywords": [ + "Dolibarr", + "Eliasis", + "Hurad", + "ImageCMS", + "Kanboard", + "Lan Management System", + "MODX Evo", + "MantisBT", + "Mautic", + "Maya", + "OXID", + "Plentymarkets", + "Porto", + "RadPHP", + "SMF", + "Starbug", + "Thelia", + "Whmcs", + "WolfCMS", + "agl", + "annotatecms", + "attogram", + "bitrix", + "cakephp", + "chef", + "cockpit", + "codeigniter", + "concrete5", + "concreteCMS", + "croogo", + "dokuwiki", + "drupal", + "eZ Platform", + "elgg", + "expressionengine", + "fuelphp", + "grav", + "installer", + "itop", + "known", + "kohana", + "laravel", + "lavalite", + "lithium", + "magento", + "majima", + "mako", + "matomo", + "mediawiki", + "miaoxing", + "modulework", + "modx", + "moodle", + "osclass", + "pantheon", + "phpbb", + "piwik", + "ppi", + "processwire", + "puppet", + "pxcms", + "reindex", + "roundcube", + "shopware", + "silverstripe", + "sydes", + "sylius", + "tastyigniter", + "wordpress", + "yawik", + "zend", + "zikula" + ], + "support": { + "issues": "https://github.com/composer/installers/issues", + "source": "https://github.com/composer/installers/tree/v2.3.0" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2024-06-24T20:46:46+00:00" + }, { "name": "doctrine/inflector", "version": "2.1.0", @@ -1430,6 +1576,64 @@ ], "time": "2023-11-08T09:30:43+00:00" }, + { + "name": "oomphinc/composer-installers-extender", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/oomphinc/composer-installers-extender.git", + "reference": "cbf4b6f9a24153b785d09eee755b995ba87bd5f9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/oomphinc/composer-installers-extender/zipball/cbf4b6f9a24153b785d09eee755b995ba87bd5f9", + "reference": "cbf4b6f9a24153b785d09eee755b995ba87bd5f9", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.1 || ^2.0", + "composer/installers": "^1.0 || ^2.0", + "php": ">=7.1" + }, + "require-dev": { + "composer/composer": "^2.0", + "phpunit/phpunit": "^7.2", + "squizlabs/php_codesniffer": "^3.3" + }, + "type": "composer-plugin", + "extra": { + "class": "OomphInc\\ComposerInstallersExtender\\Plugin" + }, + "autoload": { + "psr-4": { + "OomphInc\\ComposerInstallersExtender\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Stephen Beemsterboer", + "email": "stephen@oomphinc.com", + "homepage": "https://github.com/balbuf" + }, + { + "name": "Nathan Dentzau", + "email": "nate@oomphinc.com", + "homepage": "http://oomph.is/ndentzau" + } + ], + "description": "Extend the composer/installers plugin to accept any arbitrary package type.", + "homepage": "http://www.oomphinc.com/", + "support": { + "issues": "https://github.com/oomphinc/composer-installers-extender/issues", + "source": "https://github.com/oomphinc/composer-installers-extender/tree/2.0.1" + }, + "abandoned": true, + "time": "2021-12-15T12:32:42+00:00" + }, { "name": "php-di/invoker", "version": "2.3.7", @@ -2667,16 +2871,16 @@ }, { "name": "symfony/polyfill-deepclone", - "version": "v1.39.0", + "version": "v1.40.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-deepclone.git", - "reference": "1b034bc050d84cc9c187de373f744912e1e35f1f" + "reference": "dca4ccba5f360070b574414dce4c1e7a559844fa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-deepclone/zipball/1b034bc050d84cc9c187de373f744912e1e35f1f", - "reference": "1b034bc050d84cc9c187de373f744912e1e35f1f", + "url": "https://api.github.com/repos/symfony/polyfill-deepclone/zipball/dca4ccba5f360070b574414dce4c1e7a559844fa", + "reference": "dca4ccba5f360070b574414dce4c1e7a559844fa", "shasum": "" }, "require": { @@ -2730,7 +2934,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-deepclone/tree/v1.39.0" + "source": "https://github.com/symfony/polyfill-deepclone/tree/v1.40.0" }, "funding": [ { @@ -2750,7 +2954,7 @@ "type": "tidelift" } ], - "time": "2026-06-10T20:07:50+00:00" + "time": "2026-06-12T07:27:17+00:00" }, { "name": "symfony/polyfill-intl-grapheme", @@ -4088,12 +4292,12 @@ "source": { "type": "git", "url": "https://github.com/webifycms/ext-base.git", - "reference": "e1b35394e479f1a7196b7561d9929042ec12a13b" + "reference": "bfa482d3413a82403b19b7ecba9afbf485e3a371" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webifycms/ext-base/zipball/e1b35394e479f1a7196b7561d9929042ec12a13b", - "reference": "e1b35394e479f1a7196b7561d9929042ec12a13b", + "url": "https://api.github.com/repos/webifycms/ext-base/zipball/bfa482d3413a82403b19b7ecba9afbf485e3a371", + "reference": "bfa482d3413a82403b19b7ecba9afbf485e3a371", "shasum": "" }, "require": { @@ -4172,7 +4376,7 @@ "source": "https://github.com/webifycms/ext-base/tree/main", "issues": "https://github.com/webifycms/ext-base/issues" }, - "time": "2026-06-11T13:28:43+00:00" + "time": "2026-06-12T16:38:19+00:00" } ], "packages-dev": [ @@ -6385,12 +6589,12 @@ "source": { "type": "git", "url": "https://github.com/Roave/SecurityAdvisories.git", - "reference": "86b072394ae2749d138564c5322af87502ed6520" + "reference": "111307ab063f0ca0869698eca9d14bd7be67e005" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/86b072394ae2749d138564c5322af87502ed6520", - "reference": "86b072394ae2749d138564c5322af87502ed6520", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/111307ab063f0ca0869698eca9d14bd7be67e005", + "reference": "111307ab063f0ca0869698eca9d14bd7be67e005", "shasum": "" }, "conflict": { @@ -6666,10 +6870,10 @@ "feehi/cms": "<=2.1.1", "feehi/feehicms": "<=2.1.1", "fenom/fenom": "<=2.12.1", - "filament/actions": ">=3.2,<3.2.123", + "filament/actions": ">=3.2,<3.2.123|>=4,<=4.11.3|>=5,<=5.6.3", "filament/filament": ">=4,<4.3.1", "filament/infolists": ">=3,<3.2.115", - "filament/tables": ">=3,<3.2.115|>=4,<4.8.5|>=5,<5.3.5", + "filament/tables": ">=3,<=3.3.50|>=4,<4.8.5|>=5,<5.3.5", "filegator/filegator": "<7.8", "filp/whoops": "<2.1.13", "fineuploader/php-traditional-server": "<=1.2.2", @@ -6733,7 +6937,7 @@ "gp247/core": "<1.1.24", "gree/jose": "<2.2.1", "gregwar/rst": "<1.0.3", - "grumpydictator/firefly-iii": "<6.1.17|>=6.4.23,<=6.5", + "grumpydictator/firefly-iii": "<=6.6.2", "gugoan/economizzer": "<=0.9.0.0-beta1", "guzzlehttp/guzzle": "<6.5.8|>=7,<7.4.5", "guzzlehttp/guzzle-services": "<1.5.4", @@ -7293,7 +7497,7 @@ "typo3/cms-backend": "<4.1.14|>=4.2,<4.2.15|>=4.3,<4.3.7|>=4.4,<4.4.4|>=7,<=7.6.50|>=8,<=8.7.39|>=9,<9.5.55|>=10,<=10.4.54|>=11,<=11.5.48|>=12,<=12.4.40|>=13,<=13.4.22|>=14,<=14.0.1|==14.2", "typo3/cms-belog": ">=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<=13.4.2", "typo3/cms-beuser": ">=9,<9.5.55|>=10,<10.4.54|>=11,<11.5.48|>=12,<12.4.37|>=13,<13.4.18", - "typo3/cms-core": "<=8.7.56|>=9,<9.5.55|>=10,<=10.4.54|>=11,<=11.5.48|>=12,<=12.4.40|>=13,<=13.4.22|>=14,<=14.0.1", + "typo3/cms-core": "<10.4.57|>=11,<11.5.51|>=12,<12.4.46|>=13,<13.4.31|>=14,<14.3.3", "typo3/cms-dashboard": ">=10,<10.4.54|>=11,<11.5.48|>=12,<12.4.37|>=13,<13.4.18", "typo3/cms-extbase": "<6.2.24|>=7,<7.6.8|==8.1.1", "typo3/cms-extensionmanager": ">=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<=13.4.2", @@ -7313,7 +7517,7 @@ "typo3/cms-webhooks": ">=12,<=12.4.30|>=13,<=13.4.11", "typo3/cms-workspaces": ">=9,<9.5.55|>=10,<10.4.54|>=11,<11.5.48|>=12,<12.4.37|>=13,<13.4.18", "typo3/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.12|>=3.1,<3.1.10|>=3.2,<3.2.13|>=3.3,<3.3.13|>=4,<4.0.6", - "typo3/html-sanitizer": ">=1,<=1.5.2|>=2,<=2.1.3", + "typo3/html-sanitizer": "<2.3.2", "typo3/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4|>=2.3,<2.3.99|>=3,<3.0.20|>=3.1,<3.1.18|>=3.2,<3.2.14|>=3.3,<3.3.23|>=4,<4.0.17|>=4.1,<4.1.16|>=4.2,<4.2.12|>=4.3,<4.3.3", "typo3/phar-stream-wrapper": ">=1,<2.1.1|>=3,<3.1.1", "typo3/swiftmailer": ">=4.1,<4.1.99|>=5.4,<5.4.5", @@ -7472,7 +7676,7 @@ "type": "tidelift" } ], - "time": "2026-06-11T17:18:46+00:00" + "time": "2026-06-12T15:06:50+00:00" }, { "name": "sebastian/cli-parser", diff --git a/config/config.php b/config/config.php index f3f3385..71aa617 100644 --- a/config/config.php +++ b/config/config.php @@ -21,7 +21,7 @@ 'basePath' => dirname(__DIR__), 'runtimePath' => dirname(__DIR__) . '/runtime', 'configPath' => dirname(__DIR__) . '/config', - 'environment' => $_ENV['APP_ENV'] ?? 'development', + 'environment' => $_ENV['APP_ENV'] ?? 'production', 'debug' => filter_var($_ENV['APP_DEBUG'] ?? true, FILTER_VALIDATE_BOOLEAN), 'providers' => [ BaseServiceProvider::class, diff --git a/docs/architecture.md b/docs/architecture.md index 5dad1bd..438fea6 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -615,18 +615,19 @@ a consistent pattern: ```php use Nyholm\Psr7\Factory\Psr17Factory; -use Psr\Http\Message\{ResponseInterface, ServerRequestInterface}; +use Psr\Http\Message\{ResponseFactoryInterface, ResponseInterface, ServerRequestInterface, StreamFactoryInterface}; final readonly class Home { public function __construct( - private Psr17Factory $factory, + private ResponseFactoryInterface $responseFactory, + private StreamFactoryInterface $streamFactory ) {} public function __invoke(ServerRequestInterface $request): ResponseInterface { - $response = $this->factory->createResponse(200); - $body = $this->factory->createStream('Hello, world!'); + $response = $this->responseFactory->createResponse(200); + $body = $this->streamFactory->createStream('Hello, world!'); return $response ->withBody($body) diff --git a/src/Infrastructure/Presentation/Http/Controller/Home.php b/src/Infrastructure/Presentation/Http/Controller/Home.php index ae3f6c5..399e336 100644 --- a/src/Infrastructure/Presentation/Http/Controller/Home.php +++ b/src/Infrastructure/Presentation/Http/Controller/Home.php @@ -13,8 +13,7 @@ namespace App\Infrastructure\Presentation\Http\Controller; -use Nyholm\Psr7\Factory\Psr17Factory; -use Psr\Http\Message\{ResponseInterface, ServerRequestInterface}; +use Psr\Http\Message\{ResponseFactoryInterface, ResponseInterface, ServerRequestInterface, StreamFactoryInterface}; /** * Home controller, just an example controller. It renders the home page. @@ -25,7 +24,8 @@ * The constructor. */ public function __construct( - private Psr17Factory $factory + private ResponseFactoryInterface $responseFactory, + private StreamFactoryInterface $streamFactory ) {} /** @@ -33,8 +33,8 @@ public function __construct( */ public function __invoke(ServerRequestInterface $request): ResponseInterface { - $response = $this->factory->createResponse(200); - $body = $this->factory->createStream("Hello, world! Let's simply transform to web."); + $response = $this->responseFactory->createResponse(200); + $body = $this->streamFactory->createStream("Hello, world! Let's simply transform to web."); return $response ->withBody($body)