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