Wordpress like shortcodes for Laravel 4.2

1.0.2 2014-12-06 18:45 UTC

This package is not auto-updated.

Last update: 2024-06-18 01:26:08 UTC



Wordpress like shortcodes for Laravel 4.2.

[b class="bold"]Bold text[/b]

  [tab]Tab 1[/tab]
  [tab]Tab 2[/tab]

[user id="1" display="name"]

If you are looking for BBcodes, see:

Build Status Latest Stable Version Total Downloads License Monthly Downloads Daily Downloads


Require this package in your composer.json and update composer.

"brouwers/shortcodes": "1.*"

After updating composer, add the ServiceProvider to the providers array in app/config/app.php


You can use the facade for shorter code. Add this to your aliases:

'Shortcode' => 'Brouwers\Shortcodes\Facades\Shortcode',

The class is bound to the ioC as shortcode

$shortcode = App::make('shortcode');


View compiling

By default shortcode compiling is set to false inside the config.


To enable the view compiling features:

return View::make('view')->withShortcodes();

This will enable shortcode rendering for that view only.


Enabeling the shortcodes through config shortcodes::enabled will enable shortcoding rendering for all views.

Enable through class


Disable through class


Disabeling some views from shortcode compiling

With the config set to true, you can disable the compiling per view.

return View::make('view')->withoutShortcodes();

Default compiling

To use default compiling:


Registering new shortcodes

Inside a file or service provider you can register the shortcodes. (E.g. app/start/shortcodes.php or App/Services/ShortcodeServiceProvider.php)


Shortcodes can be registered like Laravel macro's with a callback:

Shortcode::register('b', function($shortcode, $content, $compiler, $name)
  return '<strong class="'. $shortcode->class .'">' . $content . '</strong>';

Default class

class BoldShortcode {

  public function register($shortcode, $content, $compiler, $name)
    return '<strong class="'. $shortcode->class .'">' . $content . '</strong>';

Shortcode::register('b', 'BoldShortcode');

Class with custom method

class BoldShortcode {

  public function custom($shortcode, $content, $compiler, $name)
    return '<strong class="'. $shortcode->class .'">' . $content . '</strong>';

Shortcode::register('b', 'BoldShortcode@custom');

Register helpers

If you only want to show the html attribute when the attribute is provided in the shortcode, you can use $shortcode->get($attributeKey, $fallbackValue = null)

class BoldShortcode {

  public function register($shortcode, $content, $compiler, $name)
    return '<strong '. $shortcode->get('class', 'default') .'>' . $content . '</strong>';