The UserInfo
The library provides a UserInfo class to ease user information creation and manipulation. This URI component object exposes the package common API, but also provide specific methods to work with the URI user information part.
Creating a new object
<?php
public UserInfo::__construct(?string $content = null): void
The League\Uri\Components\Exception extends PHP’s SPL InvalidArgumentException.
Accessing User information content
<?php
public UserInfo::getUser(int $enc_type = ComponentInterface::RFC3986_ENCODING): ?string
public UserInfo::getPass(int $enc_type = ComponentInterface::RFC3986_ENCODING): ?string
To access the user login and password information you need to call the respective UserInfo::getUser and UserInfo::getPass methods like shown below.
<?php
use League\Uri\Components\UserInfo;
$info = new UserInfo('foo', 'bar');
$info->getUser(); //return 'foo'
$info->getPass(); //return 'bar'
Just like the ComponentInterface::getContent method both UserInfo::getUser and UserInfo::getPass accept an optional $enc_type argument to specify how to encode the specify how to encode the returned value.
<?php
use League\Uri\Components\UserInfo;
$info = new UserInfo('bébé');
$info->getUser(UserInfo::RFC3987_ENCODING); //return 'bébé'
$info->getUser(UserInfo::RFC3986_ENCODING); //return 'b%C3%A9b%C3%A9'
$info->getUser(); //return 'b%C3%A9b%C3%A9'
Modifying the user information
<?php
public UserInfo::withUserInfo(string $user [, ?string $password = null]): self
Because the UserInfo is composed of at most two components the UserInfo::withUserInfo method is introduced to ease modify the object content.
<?php
use League\Uri\Components\UserInfo;
$info = new UserInfo('foo', 'bar');
$new_info = $info->withUserInfo('john', 'doe');
echo $new_info; //displays john:doe
echo $info; //displays foo:bar