Skip to content

Commit

Permalink
Code: add types
Browse files Browse the repository at this point in the history
  • Loading branch information
f3l1x committed Nov 25, 2023
1 parent 9f08e34 commit b4d9c95
Show file tree
Hide file tree
Showing 8 changed files with 29 additions and 59 deletions.
28 changes: 11 additions & 17 deletions src/AbstractTemplateFactory.php
Expand Up @@ -10,46 +10,38 @@
abstract class AbstractTemplateFactory implements IMailTemplateFactory
{

/** @var mixed[] */
protected $defaults = [
/** @var array<string, mixed> */
protected array $defaults = [
'layout' => '@default',
];

/** @var mixed[] */
protected $config = [
/** @var array<string, mixed> */
protected array $config = [
'layout' => '@default',
];

/**
* @param mixed[] $defaults
* @param array<string, mixed> $defaults
*/
public function setDefaults(array $defaults): void
{
$this->defaults = $defaults;
}

/**
* @param mixed $key
* @param mixed $value
*/
public function setDefaultsItem($key, $value): void
public function setDefaultsItem(string $key, mixed $value): void
{
$this->defaults[$key] = $value;
}

/**
* @param mixed[] $config
* @param array<string, mixed> $config
*/
public function setConfig(array $config): void
{
$this->config = $config;
}

/**
* @param mixed $key
* @param mixed $value
*/
public function setConfigItem($key, $value): void
public function setConfigItem(string $key, mixed $value): void
{
$this->config[$key] = $value;
}
Expand All @@ -66,6 +58,7 @@ protected function prepareDefaults(Template $template): Template
{
// Layout
if (isset($this->defaults['layout'])) {
assert(is_string($this->defaults['layout']), 'Layout must be string');
$this->defaults['layout'] = $this->prepareLayout($this->defaults['layout']);
}

Expand All @@ -79,6 +72,7 @@ protected function prepareConfig(Template $template): Template
{
// Layout
if (isset($this->config['layout'])) {
assert(is_string($this->config['layout']), 'Layout must be string');
$this->config['layout'] = $this->prepareLayout($this->config['layout']);
}

Expand All @@ -90,7 +84,7 @@ protected function prepareConfig(Template $template): Template

protected function prepareLayout(string $layout): string
{
if (Strings::startsWith($layout, '@')) {
if (str_starts_with($layout, '@')) {
$layout = __DIR__ . '/../resources/layouts/' . $layout;
}

Expand Down
2 changes: 1 addition & 1 deletion src/Exception/Logical/TemplateException.php
@@ -1,4 +1,4 @@
<?php
<?php declare(strict_types = 1);

namespace Contributte\Mailing\Exception\Logical;

Expand Down
15 changes: 5 additions & 10 deletions src/MailBuilder.php
Expand Up @@ -10,20 +10,15 @@
class MailBuilder
{

/** @var IMailSender */
protected $sender;
protected IMailSender $sender;

/** @var Message */
protected $message;
protected Message $message;

/** @var Template */
protected $template;
protected Template $template;

/** @var string|null */
protected $plain;
protected ?string $plain = null;

/** @var string|null */
protected $imagePath;
protected ?string $imagePath = null;

public function __construct(IMailSender $mailer, ?Message $message = null)
{
Expand Down
6 changes: 2 additions & 4 deletions src/MailBuilderFactory.php
Expand Up @@ -5,11 +5,9 @@
class MailBuilderFactory implements IMailBuilderFactory
{

/** @var IMailSender */
protected $sender;
protected IMailSender $sender;

/** @var IMailTemplateFactory */
protected $templateFactory;
protected IMailTemplateFactory $templateFactory;

public function __construct(IMailSender $sender, IMailTemplateFactory $templateFactory)
{
Expand Down
3 changes: 1 addition & 2 deletions src/NetteMailSender.php
Expand Up @@ -8,8 +8,7 @@
class NetteMailSender implements IMailSender
{

/** @var Mailer */
private $mailer;
private Mailer $mailer;

public function __construct(Mailer $mailer)
{
Expand Down
6 changes: 2 additions & 4 deletions src/NetteTemplateFactory.php
Expand Up @@ -9,11 +9,9 @@
class NetteTemplateFactory extends AbstractTemplateFactory
{

/** @var TemplateFactory */
private $templateFactory;
private TemplateFactory $templateFactory;

/** @var LinkGenerator */
private $linkGenerator;
private LinkGenerator $linkGenerator;

public function __construct(TemplateFactory $templateFactory, LinkGenerator $linkGenerator)
{
Expand Down
12 changes: 3 additions & 9 deletions src/Utils/Templater.php
Expand Up @@ -9,13 +9,10 @@
class Templater
{

/**
* @param mixed $value
*/
public static function addParameter(Template $template, string $name, $value): Template
public static function addParameter(Template $template, string $name, mixed $value): Template
{
if (property_exists($template, $name)) {
throw new RuntimeException("The variable '$name' already exists.");
throw new RuntimeException(sprintf('The variable "%s" already exists.', $name));
}

$template->$name = $value;
Expand All @@ -35,10 +32,7 @@ public static function addParameters(Template $template, array $parameters): Tem
return $template;
}

/**
* @param mixed $value
*/
public static function setParameter(Template $template, string $name, $value): Template
public static function setParameter(Template $template, string $name, mixed $value): Template
{
Arrays::toObject([$name => $value], $template);

Expand Down
16 changes: 4 additions & 12 deletions tests/cases/MailBuilder.phpt
Expand Up @@ -31,9 +31,7 @@ Toolkit::test(function (): void {
$mailer = Mockery::mock(Mailer::class);
$mailer->shouldReceive('send')
->once()
->withArgs(function (Message $message): bool {
return $message->getBody() === 'Plain text';
});
->withArgs(fn (Message $message): bool => $message->getBody() === 'Plain text');

$sender = new NetteMailSender($mailer);
$builder = new MailBuilder($sender);
Expand All @@ -58,9 +56,7 @@ Toolkit::test(function (): void {
$mailer = Mockery::mock(Mailer::class);
$mailer->shouldReceive('send')
->once()
->withArgs(function (Message $message): bool {
return Strings::contains($message->getHtmlBody(), '<img src="https://github.com/f3l1x.png">');
});
->withArgs(fn (Message $message): bool => Strings::contains($message->getHtmlBody(), '<img src="https://github.com/f3l1x.png">'));

$sender = new NetteMailSender($mailer);
$builder = new MailBuilder($sender);
Expand All @@ -75,9 +71,7 @@ Toolkit::test(function (): void {
$mailer = Mockery::mock(Mailer::class);
$mailer->shouldReceive('send')
->once()
->withArgs(function (Message $message): bool {
return Assert::isMatching('<img src="%a%">', $message->getHtmlBody());
});
->withArgs(fn (Message $message): bool => Assert::isMatching('<img src="%a%">', $message->getHtmlBody()));

$sender = new NetteMailSender($mailer);
$builder = new MailBuilder($sender);
Expand All @@ -92,9 +86,7 @@ Toolkit::test(function (): void {
$mailer = Mockery::mock(Mailer::class);
$mailer->shouldReceive('send')
->once()
->withArgs(function (Message $message): bool {
return $message->getHtmlBody() === '1';
});
->withArgs(fn (Message $message): bool => $message->getHtmlBody() === '1');

$sender = new NetteMailSender($mailer);
$builder = new MailBuilder($sender);
Expand Down

0 comments on commit b4d9c95

Please sign in to comment.