effectra / email-address-formatter
The Effectra Email Address Formatter package.
dev-main
2025-10-02 20:15 UTC
This package is auto-updated.
Last update: 2025-10-02 20:22:40 UTC
README
A lightweight PHP package for representing and formatting email addresses with optional names.
It provides validation, parsing, and factory methods to work with email addresses in a clean and consistent way.
Features
- Represent an email address with an optional name.
- Create an
Address
object from a raw string (e.g.,"John Doe <john@example.com>"
). - Validate email addresses.
- Format email addresses in a standard string format.
- Create multiple
Address
instances from an array of data. - Follows SOLID principles with
AddressInterface
.
Installation
composer require effectra/email-address-formatter
Usage
Basic Example
use Effectra\EmailAddressFormatter\Address; $address = new Address("john@example.com", "John Doe"); echo $address->getEmail(); // john@example.com echo $address->getName(); // John Doe echo $address->format(); // John Doe <john@example.com>
Create from String
use Effectra\EmailAddressFormatter\Address; $address = Address::createFrom("Jane Doe <jane@example.com>"); echo $address->getEmail(); // jane@example.com echo $address->getName(); // Jane Doe
Using AddressFactory
use Effectra\EmailAddressFormatter\AddressFactory; // Single address $address = AddressFactory::create("mike@example.com", "Mike"); // Multiple addresses $addresses = AddressFactory::createFromArray([ "susan@example.com", ["email" => "david@example.com", "name" => "David"], ["email" => "emma@example.com"] // name is optional ]); foreach ($addresses as $addr) { echo $addr->format() . PHP_EOL; } // Output: // susan@example.com <susan@example.com> // David <david@example.com> // emma@example.com <emma@example.com>
Validation
use Effectra\EmailAddressFormatter\Address; if (Address::emailValidation("valid@example.com")) { echo "Valid email!"; } else { echo "Invalid email!"; }
API Reference
Address
class
__construct(string $email, string $name = '')
static createFrom(string $addressText): static
getName(): string
getEmail(): string
static emailValidation(string $email): bool
format(): string
__toString(): string
AddressFactory
class
static create(string $email, string $name = ''): AddressInterface
static createFromArray(array $data): AddressInterface[]
AddressInterface
getName(): string
getEmail(): string
static emailValidation(string $email): bool
format(): string
Example Output
$address = new Address("alex@example.com", "Alex"); echo $address; // Output: Alex <alex@example.com>
License
This package is open-source and available under the MIT License.