2017 © Pedro Peláez
 

library carabiner

To use minify js and css files (Extra Feature: you can put the php code in Javascript file.)

image

inthraonsap/carabiner

To use minify js and css files (Extra Feature: you can put the php code in Javascript file.)

  • Saturday, October 21, 2017
  • by inthra.onsap
  • Repository
  • 1 Watchers
  • 3 Stars
  • 18 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 1 Versions
  • 6 % Grown

The README.md

Laravel4-Carabiner with Blade Compiler

Carabiner is a js/css minify package. I changed some code to get it work with Laravel4 and add a few functionalities to make it compile php code. It's a good package when you work with two languages website or you need to send some php data to javascript file and so on., (*1)

Installation

Add "inthraonsap/carabiner": "dev-master" to composer.json file., (*2)

{
  "require": {
    "inthraonsap/carabiner": "dev-master"
  }
}

Run composer update CLI., (*3)

$ composer update

Open the app.php file in app/config/. and follow these steps., (*4)

'providers' => array(
  ...,
  'Inthraonsap\Carabiner\CarabinerServiceProvider',
  ...
),
'aliases' => array(
  ...,
  'Carabiner'   => 'Inthraonsap\Carabiner\Facades\Carabiner',
  ...
)

Publish a config file by using artisan CLI., (*5)

$ php artisan config:publish inthraonsap/carabiner

Usage

Configuration

Configuration file of this package., (*6)

return array(
    /*
    |--------------------------------------------------------------------------
    | Script Directory
    |--------------------------------------------------------------------------
    |
    | Path to the script directory.
    | Relative to the public-Folder
    |
    */
    'scriptDir' => '/',
    
    /*
    |--------------------------------------------------------------------------
    | Style Directory
    |--------------------------------------------------------------------------
    |
    | Path to the style directory.
    | Relative to the public-Folder
    |
    */
    'styleDir' => '/',
    /*
    |--------------------------------------------------------------------------
    | Cache Directory
    |--------------------------------------------------------------------------
    |
    | Path to the cache directory. Must be writable.
    | Relative to the public-Folder
    |
    */
    'cacheDir' => 'cache/',
    
    /*
     * Base url for file location.
     */
    'base_uri' => URL::to('/').'/',
    
    /*
    |--------------------------------------------------------------------------
    | Combine
    |--------------------------------------------------------------------------
    |
    | Flags whether files should be combined. Defaults to TRUE.
    |
    */
    'combine' => TRUE,
    
    
    /*
    |--------------------------------------------------------------------------
    | Development Flag
    |--------------------------------------------------------------------------
    |
    |  Flags whether your in a development environment or not. Defaults to FALSE.
    |
    */
    'dev' => FALSE,
    
    /*
    |--------------------------------------------------------------------------
    | Minify Javascript
    |--------------------------------------------------------------------------
    |
    | Global flag for whether JS should be minified. Defaults to TRUE.
    |
    */
    'minify_js' => TRUE,
    
    /*
    |--------------------------------------------------------------------------
    | Minify CSS
    |--------------------------------------------------------------------------
    |
    | Global flag for whether CSS should be minified. Defaults to TRUE.
    |
    */

    'minify_css' => TRUE,
    
    /*
    |--------------------------------------------------------------------------
    | Force cURL
    |--------------------------------------------------------------------------
    |
    | Global flag for whether to force the use of cURL instead of file_get_contents()
    | Defaults to FALSE.
    |
    */

    'force_curl' => FALSE,

    /*
    |--------------------------------------------------------------------------
    | Predifined Asset Groups
    |--------------------------------------------------------------------------
    |
    | Any groups defined here will automatically be included.  Of course, they
    | won't be displayed unless you explicity display them ( like this: Carabiner::display('jquery') )
    | See docs for more.
    |
    */
    'groups' =>  array(),
    
    /**
     * character encoding for javascript tag.
     * Default: UTF-8
     */
    'charset' => 'UTF-8',
    
    /**
     * Choose a compiler for javascript file.(It works once you use Carabiner::compileJs())
     * Options: php | blade
     * ex. php
     *      alert("<?php echo 'print some text'; ?>");
     * ex. blade
     *      alert("{{{ print some text }}}");
     * Default: php
     */
    'compiler' => 'php'
);

Methods

Working with assets, (*7)

/** 
* Add JS file to queue
* @param    String of the path to development version of the JS file.  Could also be an array, or array of arrays. (ex. "assets/js/jquery.js")
* @param    String of the path to production version of the JS file. NOT REQUIRED
* @param    Boolean flag whether the file is to be combined. NOT REQUIRED
* @param    String of the group name with which the asset is to be associated. NOT REQUIRED
* @return   Void
*/
Carabiner::js($dev_file, $prod_file = '', $combine = TRUE, $minify = TRUE, $group = 'main');

/**
* Add CSS file to queue
* @param    String of the path to development version of the CSS file. Could also be an array, or array of arrays. (ex. "assets/css/layout.css")
* @param    String of the media type, usually one of (screen, print, handheld) for css. Defaults to screen.
* @param    String of the path to production version of the CSS file. NOT REQUIRED
* @param    Boolean flag whether the file is to be combined. NOT REQUIRED
* @param    Boolean flag whether the file is to be minified. NOT REQUIRED
* @param    String of the group name with which the asset is to be associated. NOT REQUIRED
* @return   Void
*/      
Carabiner::css($dev_file, $media = 'screen', $prod_file = '', $combine = TRUE, $minify = TRUE, $group = 'main')

/**
* Adding js file to queue with blade or php compiler.
* @param string $dev_file is String of the path to development version of the JS file.  Could also be an array, or array of arrays. (ex. "assets/js/jquery.js")
* @param type $args is Array of variable that you want to send to js view. (ex. array("name"=>"Inthra Onsap")).
* @param string $prod_file is String of the path to production version of the JS file. NOT REQUIRED
* @param type $combine is Boolean flag whether the file is to be combined. NOT REQUIRED
* @param type $minify is Boolean flag whether the file is to be minified. NOT REQUIRED
* @param type $group is String of the group name with which the asset is to be associated. NOT REQUIRED
* @return Void
*/
Carabiner::compileJs($dev_file, $args = array(), $prod_file = '', $combine = TRUE, $minify = TRUE, $group = 'main'){
        
// Display css
Carabiner::display('css');

//display js
Carabiner::display('js');

// display both
Carabiner::display(); // OR Carabiner::display('both');

// display group
Carabiner::display('jquery'); // group name defined as jquery

// display filterd group
Carabiner::display('main', 'js'); // group name defined as main, only display JS

// return string of asset references
$string = Carabiner::display_string('main');

// clear css cache
Carabiner::empty_cache('css');

//clear js cache
Carabiner::empty_cache('js');

// clear both
Carabiner::empty_cache(); // OR Carabiner::empty_cache('both');

// clear before a certain date
Carabiner::empty_cache('both', 'now');  // String denoting a time before which cache 
                                        // files will be removed.  Any string that 
                                        // strtotime() can take is acceptable. 
                                        // Defaults to 'now'.

Credits

All Credits to original developers. https://github.com/EllisLab/CodeIgniter/wiki/Carabiner and https://github.com/weboAp/laravel4-carabiner, (*8)

Support or Contact

If you find any issue, Please contact me by inthra.onsap@gmail.com, (*9)

The Versions

21/10 2017

dev-master

9999999-dev

To use minify js and css files (Extra Feature: you can put the php code in Javascript file.)

  Sources   Download

MIT

The Requires

 

by Avatar inthra.onsap

cssmin jsmin laravel4 carabiner