2017 © Pedro PelĂĄez
 

library url-builder

An URL object to parse, manipulate or create URLs with a fluent interface

image

timostamm/url-builder

An URL object to parse, manipulate or create URLs with a fluent interface

  • Wednesday, January 3, 2018
  • by timostamm
  • Repository
  • 1 Watchers
  • 0 Stars
  • 44 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 1 Versions
  • 16 % Grown

The README.md

PHP URL Object

Build Status, (*1)

An URL object to parse, manipulate or create URLs with a fluent interface., (*2)

Takes care of proper decoding / encoding of the path, query parameters and credentials., (*3)

The object exposes all components of common Web URLs as public properties:, (*4)

$url = new Url('https://peter%40example.com:pass@domain.tld:8080/all+products/search?query=all#fragment');
$url->scheme->get(); // -> "https"
$url->host->get(); // -> "domain.tld"
$url->port->get(); // -> 8080
$url->credentials->username; // peter@example.com
$url->credentials->password;
$url->path->get(); // "all products/search"
$url->path->filename(); // "search"
$url->query->get('query'); // "all"
$url->fragment->get(); // "fragment"
$url->getUrl(); 

URL manipulation:, (*5)

$url->clearHost(); // remove the scheme, host, port, credentials
$url->clearPath(); // remove the path, query, fragment
$url->clear(Url::QUERY | Url::FRAGMENT); // remove only specific components

// replace components with components from another URL
$url->replace('http://example.com/index.html', Url::SCHEME);
$url->replacePath('http://example.com/index.html');

$url = new Url('../styles/main.css');
$url->makeAbsolutePath('http://domain.tld/products/search'); // -> /styles/main.css
$url->makeAbsolute('http://domain.tld/products/search'); // -> http://domain.tld/styles/main.css

Path manipulation:, (*6)

$url->path->set('automatically encöded/')
$url->path->normalize(); // resolves /foo/../bar to /bar
$url->filename(); // returns just the filename

Query manipulation:, (*7)

$url->query->set('text', 'encöded');
$url->query->has('text');
$url->query->replace([
    'a' => 'foo', 
    'b' => 'bar'
]);
foreach( $url->query as list($key, $values) ) {
    print $key . ": " . join(', ', $values) . "\n"; 
}

Credentials manipulation:, (*8)

$url->credentials->username = 'peter@example.com';
$url->credentials->password = 'pass;
$url->credentials->clear(); // removes username and password if present
$url->crdentials->isEmpty(); // Checks whether a username and/or password is present.
$url->crdentials->equals($otherUrl->credentials); // True if both are empty or both are same.

Comparing URLs or individual components:, (*9)

$url->equals($otherUrl);
$url->equals('/all+products/search', Url::PATH);
$url->scheme->equals($otherUrl->scheme);

Common methods of all components:, (*10)

->isEmpty(); // is the component present?
->clear(); // makes the component empty
->equals($otherurl->component); 

The Versions

03/01 2018

dev-master

9999999-dev

An URL object to parse, manipulate or create URLs with a fluent interface

  Sources   Download

AGPL-3.0

The Requires

 

The Development Requires