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
Address
object from a raw string (e.g.,"John Doe <[email protected]>"
). - 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
.
composer require effectra/email-address-formatter
use 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 Doe
use 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): static
getName(): string
getEmail(): string
static emailValidation(string $email): bool
format(): string
__toString(): string
static create(string $email, string $name = ''): AddressInterface
static createFromArray(array $data): AddressInterface[]
getName(): string
getEmail(): string
static emailValidation(string $email): bool
format(): string
$address = new Address("[email protected]", "Alex");
echo $address;
// Output: Alex <[email protected]>
This package is open-source and available under the MIT License.