Skip to content

Manage HTML head links to improve page load performance

License

Notifications You must be signed in to change notification settings

Xanweb/c5-web-link

Repository files navigation

ConcreteCMS WebLink

Latest Version on Packagist Software License

Manage HTML head links to improve page load performance

Installation

Include library to your composer.json

composer require xanweb/c5-web-link

Add the service provider and middleware to application/config/app.php

return [
    'providers' => [
        'xw_web_link' => '\Xanweb\C5\WebLink\ServiceProvider'
    ]
];

Make sure you are loading vendor autoload application/bootstrap/autoload.php

<?php

defined('C5_EXECUTE') or die('Access Denied.');

/*
 * ----------------------------------------------------------------------------
 * Load all composer autoload items.
 * ----------------------------------------------------------------------------
 */

// If the checker class is already provided, likely we have been included in a separate composer project
if (!class_exists(\DoctrineXml\Checker::class)) {
    // Otherwise, lets try to load composer ourselves
    if (!@include(DIR_BASE_CORE . '/' . DIRNAME_VENDOR . '/autoload.php')) {
        echo 'Third party libraries not installed. Make sure that composer has required libraries in the concrete/ directory.';
        die(1);
    }
}

if (file_exists(DIR_BASE . '/' . DIRNAME_VENDOR . '/autoload.php')) {
    include_once (DIR_BASE . '/' . DIRNAME_VENDOR . '/autoload.php');
}

Usage

    use \Fig\Link\Link;
    use \Fig\Link\Relations;

    // Example with Font Preload
    $link = (new Link(Relations::REL_PRELOAD, '/path/to/font.woff2'))
                ->withAttribute('as', 'font')
                ->withAttribute('type', 'font/woff2')
                ->withAttribute('crossorigin', 'anonymous');

    app('web/link')->queueLink($link);