Blog Subscribe to the feed.

Administrator Jun 20, 2013

Orchestra Platform has officially been release as v2.0.0 on June 20th, 2013. Many of you might not know this but Orchestra Platform start on June 20th, 2012. So, what does this mean for everyone? The only different is that you can now remove "minimum-stability": "dev" to "minimum-stability": "stable".

Change Log

Continue reading this post
Administrator Jun 13, 2013

In this chapter I would like to introduce Control Extension for Orchestra Platform. It's one of official extension that has been ported from Orchestra Platform 1, which is Localtime, Authorize and soon to be added Melody Theme Manager.


Installation is as easy as adding the it to playground's main composer.json:

"require": {
    "orchestra/foundation": "2.0.0-BETA4",
    "orchestra/control": "2.0.*"

Now all we need to do is run composer update.

$ composer update

Once that is done, let's boot our application and activate Control extension.

$ php artisan serve

Laravel development server started on http://localhost:8000
Continue reading this post
Administrator Jun 12, 2013

A bit of recap, until up to now we have learn about Installation, Creating Extension, Role Based Access Control and Defining Resource Using Restful. Today let's learn how to create resources controller routing using Orchestra\Resources.

This is a pretty complex chapter so I going to focusing on Orchestra Platform features instead of Laravel 4.

Adding child Resource

To add a child resource is as easier, since we already have $playground as instance of Orchestra\Resources\Container in app/orchestra.php, all you need to do is add either one of the following:

$playground['pages'] = 'resource:AdminPagesController';

// or possible with
$playground->pages = 'resource:AdminPagesController';

// or also the same with
$playground->route('pages', 'resource:AdminPagesController');
Continue reading this post
Administrator Jun 11, 2013

It's been awhile since there been a new entries, apologies on that. For the past 9-10 days I been focusing on Control Extension for Orchestra Platform as well as ensuring that we have good test coverage before the official 2.0.0 release.

Code Coverage

I'm happy to share that our code coverage is now 100%. Overall Orchestra Platform 2 have less assertion in comparison to Orchestra Platform 1 however due to flexibility with Laravel 4 most of the integration test and functional test is no longer required and replaced with Mockery.

Components Tests Assertions Coverage
Asset 3 8 Coverage Status
Auth 31 107 Coverage Status
Extension 23 20 Coverage Status
Facile 29 43 Coverage Status
Foundation 141 214 Coverage Status
Html 48 125 Coverage Status
Memory 21 39 Coverage Status
Resources 20 41 Coverage Status
Support 24 67 Coverage Status
View 8 13 Coverage Status
Widget 16 34 Coverage Status
TOTAL 364 711
Continue reading this post
Administrator Jun 2, 2013

Time to finally dive in an create resources on Orchestra Platform, basically resource are mapping between Orchestra Platform routing to catch request that should be managed by individual extension within the administration interface, if you missed the previous chapter it's available at Simple Website with Orchestra Platform 2 (Part 3).

Adding a Resource

To start things off, lets open up app/orchestra.php and append the following:



Event::listen('orchestra.started: admin', function ()
    $playground = Orchestra\Resources::make('playground', [
        'name' => 'Playground',
        'uses' => 'restful:AdminHomeController',
Continue reading this post
Administrator Jun 1, 2013

If you haven't read Simple Website with Orchestra Platform 2 (Part 2), please do so. In this chapter I would focus on how you can create custom Role Based Access Control for your application. Yes I did say I'm suppose to talk about creating resource in this chapter but resource is nothing without authorization, right?

Basic of ACL

Orchestra Platform by default is using orchestra namespace for ACL, and each extension can extend this namespace or create their own. I personally would prefer each extension to create own namespace as this would avoid conflict between extension and make it easier for the end user to understand the responsibility of each ACL namespace. So where should we place this? Each extension can have a start file, so let's create on for app, which should be at app/orchestra.php.



Now remember that this file only be included if the extension is activated and booted by Orchestra Platform.

Continue reading this post
Administrator Jun 1, 2013

Let straight away continue from where we left off on Simple Website with Orchestra Platform 2 (Part 1). First we need to convert the app folder to be an extension, to do this lets create app/orchestra.json file and insert the content below.

    "name": "Playground",
    "description": "Sample app tutorial for Simple Website with Orchestra Platform 2",
    "author": "Mior Muhammad Zaki",
    "url": "",
    "version": "1.0.0"

So what have we accomplish by doing this? Browsing to http://localhost:8000/admin/extensions would show you that app is now available as an extension, cool eh?

Continue reading this post
Administrator Jun 1, 2013

This tutorial is based from Laravel 4 - Simple Website with Backend Tutorial and the source code would be available at The focus of this tutorial is to show everyone how the website can be done using Orchestra Platform in comparison how you would need to do it with Laravel 4.

To get started I would believe you already have some minimum knowledge on Laravel 4, Composer and Packagist. Now without wasting time let's boot up your terminal and run:

$ composer create-project orchestra/platform playground --prefer-dist

This composer command would create a new project for you on playground folder using the latest stable build, --prefer-dist is another option that you can use to indicate that you want to download a distributed version instead of cloning the repository, otherwise use --prefer-source.

Now let make sure we got Laravel 4 running.

$ cd playground
$ chmod -Rf 077 app/storage
$ php artisan serve
Laravel development server started on http://localhost:8000

php artisan serve would require PHP 5.4.* to work, as a demonstration I would use this technic so we can easily refer to the path.

Continue reading this post
Administrator May 31, 2013

Since Laravel\Asset is no longer available in Laravel 4, I been considering an alternative Asset package for Orchestra Platform. Basset was one that we tried to integrate into Orchestra Platform but later remove as it just wasn't compatible with how we would expect it to be, among the priority that we required are:

  • It should support re-ordering based on dependencies.
  • It should be called from config, filter and view.
  • Most importantly, the API shouldn't be frequently changed, at least not between release.

These requirement are so that extension developer can built stuff without having to worry that their extension wouldn't work, so I decided that we're better off forking Laravel 3's Asset class and maintain it.

Now does this mean you should use it instead of Basset, or other asset management packages available? The answer to that is NO, you're free to use anything. It just that when you're adding resources to Orchestra Platform Administrator Interface and those resource require additional assets, do use Orchestra\Asset, you're free to use anything else in View that isn't part of Orchestra Platform Adminstrator Interface.

Continue reading this post
Administrator May 10, 2013

Welcome to Orchestra Platform Official Blog, which would become my platform to showcase Orchestra Platform tutorials, news and updates.

Continue reading this post