Skip to content

A Yii Framework 2 component for using assets in different environments (Local/CDNs)

License

Notifications You must be signed in to change notification settings

blacksmoke26/yii2cdn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Latest Stable Version Total Downloads Latest Unstable Version License GitHub issues GitHub forks GitHub stars Docs Twitter

yii2cdn

A Yii Framework 2 component for using assets in different environments (Local/CDNs)

Production Ready: Used in several real projects is enough to prove its stability.

Minimum requirements: PHP 7.0+ / Yii2 Framework 2.0.12+

Bugs / Feature Request?: Create your issue here.

Resources

Installation

The preferred way to install this extension is through composer.

Either run

composer require --prefer-dist blacksmoke26/yii2cdn "*"

or add

"blacksmoke26/yii2cdn": "*"

to the require section of your composer.json file.

Usage

Info: This tutorial will demonstrate how to use FancyBox3 library in a production (online/CDN) or development (local/offline) environment.

I. Installing a library


  1. Create a cdn directory under the /root/web folder.
  2. Install or download FancyBox3 library under cdn directory.

II. Add a component


  1. Open @app/config/main.php in your code editor.
  2. Add a new property cdn under components section like the following code:
// ...
'components' => [
  // ...
  'cdn' => [
    'class' => '\yii2cdn\Cdn',
      'baseUrl' => '/cdn',
      'basePath' => dirname(__DIR__) . '/web/cdn',
      'components' => [
      'jquery-fancybox' => [
        'css' => [
          '@attributes' => [
            'noNameInPathUrls' => true, // Hide /css in urls
          ],
          [
            'dist/jquery.fancybox.css', // offline version
            '@cdn' => '//cdnjs.cloudflare.com/ajax/libs/fancybox/3.3.5/jquery.fancybox.min.css', // online version
          ],
        ],
        'js' => [
          '@attributes' => [
            'noNameInPathUrls' => true, // Hide /js in urls
          ],
          [
            'dist/jquery.fancybox.js', // offline version
            '@cdn' => '//cdnjs.cloudflare.com/ajax/libs/fancybox/3.3.5/jquery.fancybox.min.js', // online version
          ],
        ],
      ],
    ],
  ],
  // ...
],
// ...

III. Registering assets


  1. Open any view file and paste the following line:
//...
Yii::$app->cdn->get('jquery-fancybox')->register();
//...

IV. Final moment

  1. Browse the action url in your browser and check the view souce.

Now it's time to play around, See ya!