From 34d84ea172998419871bfa83688aa752dc544612 Mon Sep 17 00:00:00 2001 From: Muhammet SAFAK Date: Thu, 20 Jul 2023 07:25:41 +0300 Subject: [PATCH] Facade mimarisi eklendi --- README.md | 4 ++- src/Facade/Mailer.php | 73 +++++++++++++++++++++++++++++++++++++++++++ src/Mailer.php | 2 +- 3 files changed, 77 insertions(+), 2 deletions(-) create mode 100644 src/Facade/Mailer.php diff --git a/README.md b/README.md index e127143..9cca657 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Mailer -Mailer Class + +This is a simple library for sending mail with SMTP consisting of a single class. + [![Latest Stable Version](http://poser.pugx.org/initphp/mailer/v)](https://packagist.org/packages/initphp/mailer) [![Total Downloads](http://poser.pugx.org/initphp/mailer/downloads)](https://packagist.org/packages/initphp/mailer) [![Latest Unstable Version](http://poser.pugx.org/initphp/mailer/v/unstable)](https://packagist.org/packages/initphp/mailer) [![License](http://poser.pugx.org/initphp/mailer/license)](https://packagist.org/packages/initphp/mailer) [![PHP Version Require](http://poser.pugx.org/initphp/mailer/require/php)](https://packagist.org/packages/initphp/mailer) diff --git a/src/Facade/Mailer.php b/src/Facade/Mailer.php new file mode 100644 index 0000000..1dda1d4 --- /dev/null +++ b/src/Facade/Mailer.php @@ -0,0 +1,73 @@ + + * @copyright Copyright © 2022 InitPHP + * @license http://initphp.github.io/license.txt MIT + * @version 1.1 + * @link https://www.muhammetsafak.com.tr + */ + +declare(strict_types=1); + +namespace InitPHP\Mailer\Facade; + +use \InitPHP\Mailer\Mailer as MailerInstance; + +/** + * @mixin MailerInstance + * @method static MailerInstance clear(bool $clearAttachments = false) + * @method static MailerInstance setHeader(string $header, string $value) + * @method static MailerInstance setFrom(string $from, string $name = '', null|string $returnPath = null) + * @method static MailerInstance setReplyTo(string $replyTo, string $name = '') + * @method static MailerInstance setTo(string[]|string $to) + * @method static MailerInstance setCC(string $cc) + * @method static MailerInstance setBCC(string $bcc, null|int $limit = null) + * @method static MailerInstance setSubject(string $subject) + * @method static MailerInstance setMessage(string $body) + * @method static MailerInstance setAttachmentCID(string $fileName) + * @method static MailerInstance setAltMessage(string $str) + * @method static MailerInstance setMailType(string $type = 'text') + * @method static MailerInstance setWordWrap(bool $wordWrap = true) + * @method static MailerInstance setProtocol(string $protocol = 'mail') + * @method static MailerInstance setPriority(int $n = 3) + * @method static MailerInstance setNewline(string $newLine = PHP_EOL) + * @method static MailerInstance setCRLF(string $CRLF = PHP_EOL) + * @method static MailerInstance|false attach(string $file, string $disposition = '', null|string $newName = null, null|string $mime = null) + * @method static string getMessageID() + * @method static bool validateEmail(string[] $mails) + * @method static bool isValidEmail(string $mail) + * @method static string|string[] cleanEmail(string|string[] $mail) + * @method static string wordWrap(string $str, null|int $chars = null) + * @method static bool send(bool $autoClear = true) + * @method static void batchBCCSend() + * @method static string printDebugger(array $include = ['headers', 'subject', 'body']) + */ +class Mailer +{ + + protected static MailerInstance $instance; + + public function __call($name, $arguments) + { + return self::__getInstance()->{$name}(...$arguments); + } + + public static function __callStatic($name, $arguments) + { + return self::__getInstance()->{$name}(...$arguments); + } + + protected static function __getInstance(): MailerInstance + { + if (!isset(self::$instance)) { + self::$instance = MailerInstance::newInstance(); + } + + return self::$instance; + } + +} diff --git a/src/Mailer.php b/src/Mailer.php index c355841..e30799d 100644 --- a/src/Mailer.php +++ b/src/Mailer.php @@ -7,7 +7,7 @@ * @author Muhammet ŞAFAK * @copyright Copyright © 2022 InitPHP * @license http://initphp.github.io/license.txt MIT - * @version 1.0 + * @version 1.1 * @link https://www.muhammetsafak.com.tr */