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.
- Represent an email address with an optional name.
- Create an
Addressobject from a raw string (e.g.,"John Doe <[email protected]>"). - Validate email addresses.
- Format email addresses in a standard string format.
- Create multiple
Addressinstances from an array of data. - Follows SOLID principles with
AddressInterface.
composer require effectra/email-address-formatteruse Effectra\EmailAddressFormatter\Address;
$address = new Address("[email protected]", "John Doe");
echo $address->getEmail(); // [email protected]
echo $address->getName(); // John Doe
echo $address->format(); // John Doe <[email protected]>use Effectra\EmailAddressFormatter\Address;
$address = Address::createFrom("Jane Doe <[email protected]>");
echo $address->getEmail(); // [email protected]
echo $address->getName(); // Jane Doeuse Effectra\EmailAddressFormatter\AddressFactory;
// Single address
$address = AddressFactory::create("[email protected]", "Mike");
// Multiple addresses
$addresses = AddressFactory::createFromArray([
"[email protected]",
["email" => "[email protected]", "name" => "David"],
["email" => "[email protected]"] // name is optional
]);
foreach ($addresses as $addr) {
echo $addr->format() . PHP_EOL;
}
// Output:
// [email protected] <[email protected]>
// David <[email protected]>
// [email protected] <[email protected]>use Effectra\EmailAddressFormatter\Address;
if (Address::emailValidation("[email protected]")) {
echo "Valid email!";
} else {
echo "Invalid email!";
}__construct(string $email, string $name = '')static createFrom(string $addressText): staticgetName(): stringgetEmail(): stringstatic emailValidation(string $email): boolformat(): string__toString(): string
static create(string $email, string $name = ''): AddressInterfacestatic createFromArray(array $data): AddressInterface[]
getName(): stringgetEmail(): stringstatic emailValidation(string $email): boolformat(): string
$address = new Address("[email protected]", "Alex");
echo $address;
// Output: Alex <[email protected]>This package is open-source and available under the MIT License.