Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 15 additions & 15 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,13 @@ jobs:

strategy:
matrix:
php-versions: [ "8.0" ]
php-versions: [ "8.4" ]
operating-system: [ "ubuntu-latest" ]
fail-fast: false

steps:
- name: "Checkout"
uses: "actions/checkout@v2"
uses: "actions/checkout@v4"

- name: "Setup PHP cache environment"
id: "extcache"
Expand All @@ -40,7 +40,7 @@ jobs:
key: "${{ env.cacheVersion }}"

- name: "Cache PHP extensions"
uses: "actions/cache@v2"
uses: "actions/cache@v4"
with:
path: "${{ steps.extcache.outputs.dir }}"
key: "${{ steps.extcache.outputs.key }}"
Expand All @@ -58,10 +58,10 @@ jobs:

- name: "Get Composer cache directory"
id: "composercache"
run: 'echo "::set-output name=dir::$(composer config cache-files-dir)"'
run: 'echo "dir=$(composer config cache-files-dir)" >> "$GITHUB_OUTPUT"'

- name: "Cache PHP dependencies"
uses: "actions/cache@v2"
uses: "actions/cache@v4"
with:
path: "${{ steps.composercache.outputs.dir }}"
key: "${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}"
Expand All @@ -82,13 +82,13 @@ jobs:

strategy:
matrix:
php-versions: [ "8.0" ]
php-versions: [ "8.4" ]
operating-system: [ "ubuntu-latest" ]
fail-fast: false

steps:
- name: "Checkout"
uses: "actions/checkout@v2"
uses: "actions/checkout@v4"

- name: "Setup PHP cache environment"
id: "extcache"
Expand All @@ -99,7 +99,7 @@ jobs:
key: "${{ env.cacheVersion }}"

- name: "Cache PHP extensions"
uses: "actions/cache@v2"
uses: "actions/cache@v4"
with:
path: "${{ steps.extcache.outputs.dir }}"
key: "${{ steps.extcache.outputs.key }}"
Expand All @@ -117,10 +117,10 @@ jobs:

- name: "Get Composer cache directory"
id: "composercache"
run: 'echo "::set-output name=dir::$(composer config cache-files-dir)"'
run: 'echo "dir=$(composer config cache-files-dir)" >> "$GITHUB_OUTPUT"'

- name: "Cache PHP dependencies"
uses: "actions/cache@v2"
uses: "actions/cache@v4"
with:
path: "${{ steps.composercache.outputs.dir }}"
key: "${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}"
Expand All @@ -138,13 +138,13 @@ jobs:

strategy:
matrix:
php-versions: [ "8.0" ]
php-versions: [ "8.4" ]
operating-system: [ "ubuntu-latest" ]
fail-fast: false

steps:
- name: "Checkout"
uses: "actions/checkout@v2"
uses: "actions/checkout@v4"

- name: "Setup PHP cache environment"
id: "extcache"
Expand All @@ -155,7 +155,7 @@ jobs:
key: "${{ env.cacheVersion }}"

- name: "Cache PHP extensions"
uses: "actions/cache@v2"
uses: "actions/cache@v4"
with:
path: "${{ steps.extcache.outputs.dir }}"
key: "${{ steps.extcache.outputs.key }}"
Expand All @@ -173,10 +173,10 @@ jobs:

- name: "Get Composer cache directory"
id: "composercache"
run: 'echo "::set-output name=dir::$(composer config cache-files-dir)"'
run: 'echo "dir=$(composer config cache-files-dir)" >> "$GITHUB_OUTPUT"'

- name: "Cache PHP dependencies"
uses: "actions/cache@v2"
uses: "actions/cache@v4"
with:
path: "${{ steps.composercache.outputs.dir }}"
key: "${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}"
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ https://examples.contributte.org/micro-skeleton/

## Installation

You will need `PHP 8.0+` and [Composer](https://getcomposer.org/).
You will need `PHP 8.4+` and [Composer](https://getcomposer.org/).

Create project using composer.

Expand Down
22 changes: 8 additions & 14 deletions app/model/ControlRenderer.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,10 @@
final class ControlRenderer extends Control
{

/** @var Container */
private $context;
private Container $context;

/** @var string[] */
private $mapping = [];
private array $mapping = [];

public function __construct(Container $context)
{
Expand All @@ -26,22 +25,17 @@ public function addMapping(string $name, string $class): void
$this->mapping[$name] = $class;
}

protected function createComponent(string $name): ?IComponent
{
if (isset($this->mapping[$name])) {
return $this->context->getByType($this->mapping[$name]);
} else {
return parent::createComponent($name);

}
}

/**
* @param mixed[] $args
*/
public function link(string $destination, $args = []): string
public function link(string $destination, array $args = []): string
{
return $this->context->getByType(LinkGenerator::class)->link($destination, $args);
}

protected function createComponent(string $name): ?IComponent
{
return isset($this->mapping[$name]) ? $this->context->getByType($this->mapping[$name]) : parent::createComponent($name);
}

}
46 changes: 20 additions & 26 deletions app/model/MicroPresenter.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,20 +28,15 @@ final class MicroPresenter extends Component implements IPresenter

use SmartObject;

/** @var Container */
private $context;
private Container $context;

/** @var IHttpRequest */
private $httpRequest;
private IHttpRequest $httpRequest;

/** @var Router */
private $router;
private Router $router;

/** @var Request */
private $request;
private Request $request;

/** @var ControlRenderer */
private $controlRenderer;
private ?ControlRenderer $controlRenderer = null;

public function __construct(Container $context, IHttpRequest $httpRequest, Router $router)
{
Expand All @@ -60,21 +55,6 @@ public function getRequest(): Request
return $this->request;
}

protected function getTemplateFactory(): TemplateFactory
{
return $this->getContext()->getByType(TemplateFactory::class);
}

protected function getControlRenderer(): ControlRenderer
{
if (!$this->controlRenderer) {
$this->controlRenderer = $this->getContext()->getByType(ControlRenderer::class);
$this->controlRenderer->setParent($this);
}

return $this->controlRenderer;
}

public function run(Request $request): Response
{
$this->request = $request;
Expand Down Expand Up @@ -162,10 +142,24 @@ public function redirectUrl(string $url, int $httpCode = IHttpResponse::S302_FOU
return new RedirectResponse($url, $httpCode);
}


public function error(string $message = '', int $httpCode = IHttpResponse::S404_NOT_FOUND): void
{
throw new BadRequestException($message, $httpCode);
}

protected function getTemplateFactory(): TemplateFactory
{
return $this->getContext()->getByType(TemplateFactory::class);
}

protected function getControlRenderer(): ControlRenderer
{
if ($this->controlRenderer === null) {
$this->controlRenderer = $this->getContext()->getByType(ControlRenderer::class);
$this->controlRenderer->setParent($this);
}

return $this->controlRenderer;
}

}
21 changes: 10 additions & 11 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,21 +13,20 @@
"license": "MIT",
"type": "project",
"require": {
"php": ">=8.0",
"php": ">=8.4",

"contributte/bootstrap": "^0.6.0",
"contributte/di": "^0.5.0",
"contributte/application": "^0.5.0",
"contributte/bootstrap": "^0.7.0",
"contributte/di": "^0.6.0",
"contributte/application": "^0.6.0",
"contributte/forms": "^0.5.0",
"contributte/http": "^0.4.0",
"contributte/utils": "^0.6.0",
"contributte/latte": "^0.6.0",
"contributte/tracy": "^0.5.0"
"contributte/http": "^0.5.0",
"contributte/utils": "^0.7.0",
"contributte/latte": "^0.7.0",
"contributte/tracy": "^0.7.0"
},
"require-dev": {
"ninjify/qa": "^0.13",
"ninjify/nunjuck": "^0.4",
"contributte/dev": "^0.3"
"contributte/qa": "^0.4",
"contributte/dev": "^0.6"
},
"autoload": {
"psr-4": {
Expand Down
Loading