Select Git revision
phpcs.xml.dist
-
Piotr Potrebka authoredPiotr Potrebka authored
Mailer.php 3.93 KiB
<?php
namespace WPDesk\Library\WPEmail;
use Exception;
use WP_Error;
use WPDesk\Library\WPEmail\Abstracts\EmailInterface;
use WPDesk\Library\WPEmail\Helpers\HTML;
use WPDesk\View\Renderer\Renderer;
use WPDesk\View\Renderer\SimplePhpRenderer;
use WPDesk\View\Resolver\ChainResolver;
use WPDesk\View\Resolver\DirResolver;
class Mailer {
/**
* @var EmailInterface[]
*/
private $emails = [];
/**
* @var Renderer
*/
private $renderer;
/**
* @param array $dirs
*/
public function __construct(
array $dirs = []
) {
$this->set_renderer( $this->init_renderer( $dirs ) );
}
/**
* @param array $dirs
*
* @return Renderer
*/
private function init_renderer( array $dirs = [] ): Renderer {
$resolver = new ChainResolver();
foreach ( $dirs as $dir ) {
$resolver->appendResolver( new DirResolver( $dir ) );
}
$resolver->appendResolver( new DirResolver( __DIR__ . '/templates' ) );
return new SimplePhpRenderer( $resolver );
}
/**
* @param Renderer $renderer
*
* @return void
*/
public function set_renderer( Renderer $renderer ) {
$this->renderer = $renderer;
}
/**
* @param EmailInterface $email
*
* @return void
*/
public function add_email( EmailInterface $email ) {
$this->emails[ $email->get_id() ] = $email;
}
/**
* @return EmailInterface[]
*/