Skip to content
Snippets Groups Projects
Select Git revision
  • 43426991d12c5a0d81a5c840a919bffeadc98b48
  • main default protected
  • devel
  • 1.0.0
4 results

phpcs.xml.dist

Blame
  • 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[]
         */