This package is abandoned and no longer maintained. No replacement package was suggested.

Phergie plugin for displaying information about URLs

4.0.0 2018-10-08 00:55 UTC

This package is not auto-updated.

Last update: 2020-03-15 05:20:02 UTC


This repo is being kept for posterity and will be archived in a readonly state. If you're interested it can be forked under a new Composer namespace/GitHub organization.

Url Plugin

Phergie plugin for Display URL information about links.

Build Status


To install via Composer, use the command below, it will automatically detect the latest version and bind it with ~.

composer require phergie/phergie-irc-plugin-react-url 

See Phergie documentation for more information on installing and enabling plugins.


return array(

    'plugins' => array(

        // dependencies
        new \Phergie\Plugin\Dns\Plugin, // Handles DNS lookups for the HTTP plugin
        new \Phergie\Plugin\Http\Plugin, // Handles the HTTP requests for this plugin

        // configuration
        new \Phergie\Irc\Plugin\React\Url\Plugin(array(
            // All configuration is optional
            'hostUrlEmitsOnly' => false, //|<host>) emits only, no further URL handling / shortening
            // or

            'handler' => new \Phergie\Irc\Plugin\React\Url\DefaultUrlHandler(), // URL handler that creates a formatted message based on the URL

            // or

            'shortenTimeout' => 15 // If after this amount of seconds no url shortener has come up with a short URL the normal URL will be used. (Not in effect when there are no shorteners listening.)

            // or

            'filter' => null // Any valid filter implementing Phergie\Irc\Plugin\React\EventFilter\FilterInterface to filter which messages should be handled 




This plugin emits the following generic, do what ever you want with it, events.

  • For example (www. is stripped from the hostname).
  • For all hostnames.

This plugins also emits two events for url shortening. Only called when there are listeners registered. Each event emit is passed a UrlshorteningEvent, if a shortener resolved short url it calls the resolve method on the promise.

  • url.shorten.HOSTNAME For example (www. is stripped from the hostname).
  • url.shorten.all For all hostnames.


The following placeholders can be used to compose a message that is passed as the first argument for DefaultUrlHandler to create custom messages:

  • %url% - Full URL
  • %url-short% - Shortened URL
  • %http-status-code% - HTTP status code
  • %timing% - Time in seconds it took for th request to complete
  • %timing2% - Time in seconds it took for th request to complete rounded off to a maximum of two decimals
  • %response-time% - Time in seconds it took for th request to complete
  • %response-time2% - Time in seconds it took for th request to complete rounded off to a maximum of two decimals
  • %title% - Page title
  • %composed-title% - Page title

Header Placeholders

Selection of response headers from:

  • %header-age%
  • %header-content-type%
  • %header-content-length%
  • %header-content-language%
  • %header-date%
  • %header-etag%
  • %header-expires%
  • %header-last-modified%
  • %header-server%
  • %header-x-powered-by%


This plugin comes with the UrlSectionFilter that lets you filter on the different key value pairs coming out of parse_url. The following example filter allows,, and

new OrFilter([
    new UrlSectionFilter('host', '*'),
    new UrlSectionFilter('host', ''),

The filter comes with a third strict parameter where instead of declaring out of scope on missing an URL part it return false.


To run the unit test suite:

curl -s | php
php composer.phar install


Released under the MIT License. See LICENSE.