humans / name-of-person
A wrappr for parsing people's names.
Installs: 18 239
Dependents: 0
Suggesters: 0
Security: 0
Stars: 10
Watchers: 5
Forks: 0
Open Issues: 1
Requires
- php: >=7.3.0
Requires (Dev)
- phpunit/phpunit: ^7.3
README
A port of Basecamp's name of person library.
A library to make an much more expressive breakdown of a user's name.
This is a pretty simplified library without accounting for any of the edge cases of how names are handled, just something usable where everything after the first name is treated as the last name.
Installation
composer require humans/name-of-person
Upgrade Notes
The API now returns an instance of the PersonName
class instead of the string to allow for method chaining. This should not affect most of the use cases.
Usage
use Humans\NameOfPerson\PersonName; $name = new PersonName('Terry Crews'); $name->full; // => "Terry Crews" $name->first; // => "Terry" $name->last; // => "Crews" $name->initials; // => "TC" $name->familiar; // => "Terry C." $name->abbreviated; // => "T. Crews" $name->sorted; // => "Crews, Terry" $name->mentionable; // => "terryc" $name->possessive; // => "Terry Crews'" $name->first->possessive // => Terry's $name->last->possessive // => Crews'
The Laravel Trait has been removed!
I ended up not using the trait since there are projects that I wanted to use a different key for the name. Instead, if you want to use the library, I highly suggest using a different attribute to avoid conflicts when building JSON APIs.
use Humans\NameOfPerson\PersonName; class User { public function getNameAttribute() { return new PersonName($this->attributes['full_name']); } }