A new ensemble, “Builder” is now available for download. Comments and feedback can be left here but if you discover any issues, please post it on the issue tracker.

Feeling lazy?

Symphony Builder will let you build custom symphony projects in a snap! It is both an extension and an ensemble.

Builder: choosing extensions

The Extension

It provides all the tools you need to talk with the Github API, store things easily in the Symphony session layer and handle queues, making it possible to build more than a project at a time. Grab it on github at:

The Ensemble

This is what you’re really looking for.

While it’s still in an early stage, it let you choose which extensions and utilities include in your project. Dealing with git is still a complicated task most of the time, especially if you don’t bother about its architecture. You should really learn it, but if clone, pull or fetch are still meaningless to you, the builder will be of great help. It let you choose which branch or tag you want to checkout, and do all the magic for you. The workspace behind this ensemble is available on github at:


All you need is a working webserver (remember that symphony officially supports only the LAMP stack, hope you get the Me$sage) and:

  • git to clone repositories
  • curl to download .zip packages
  • exsl (just the ensemble) because I suck at writing xsl code

Please remember this is in early alpha stage, still I’m really proud of it. Hope you’ll enjoy :)

Direct download:

Very nice! Hope this concept will be integrated into this website.

Well, it appears Builder is intended to be run on your own webserver, no?

I wrote a little overview of the Builder in the first post, please report any problem you might encounter.

Well, it appears Builder is intended to be run on your own webserver, no?


Sweet, thank for sharing. I’ll be toying with this next week and will give you some feedback.

@alpacaaa - very nice man. I installed it on my Snow Leopard machine which runs Apache and PHP 5.3.1, and I’m getting this when I’m finishing and I try to build…

Symphony Fatal Error

Git is not available on your system.
An error occurred in /Users/user/Sites/public_html/builder-ensemble/extensions/builder/lib/class.builderjob.php around line 201
    Git is not available on your system.
    /Users/user/Sites/public_html/builder-ensemble/extensions/builder/lib/class.builderjob.php line 201

    196         closedir($dir);
    197     } 
    199     protected static function throwEx($msg)
    200     {
    201         throw new Exception($msg);
    202     }
    203 }

I’m getting the error that GIT is not on my system. But, it is on my system. I use it everyday. I’m not good at git, but I use it, and I know it’s on my system. I don’t know if there is something I’m missing.

Could you point me in the right direction?

Probably something to do with where PHP looks for executables and/or libs on your box?

I need you to do a bit of tests, if you have some spare time. The builder wasn’t tested on many environments and therefore problems like that may arise again in the future. But we’re here to fix them!

So this is what you need to do:

  1. create a .php file with this code: <?php echo shell_exec('git --version');
  2. execute the file and post here the output

Thanks to everyone!

So this is what you need to do:

create a .php file with this code: <?php echo shell_exec('git--version'); execute the file and post here the output

I get a blank page.


This seems to be a mac related problem. Please try this code instead (hope it will show which git version you have installed)


passthru('git --version', $exit_code);
$version = ob_get_contents();

echo $version;

Odd. Still blank.

I copied and pasted your code, and ran it and it’s still blank. I even, removed the code and just ran phpinfo(); to see if it was the file itself, but phpinfo ran fine.

Does $exit_code need to be defined?

No, $exit_code is useless in our case. This is a very strange issue.

Anyway, if you’d like to try the builder you can comment out the part of code where it checks git version. It should be around line 109.


self::throwEx('Git is not available on your system.');


//self::throwEx('Git is not available on your system.');

Sorry for this issue, I will try to figure out how to get around it next week.

If you echo the $exit_code, it will be 127 (file not found), which probably means that there’s something wrong/missing in the environment setup. (I have no idea how to fix this.)

Ok thanks.

After a bit of debugging, this is the only solution I found. As Craig and Michael correctly pointed out, in some environments php is not able to find git.

Please try this solution:

  1. Open a terminal and type which git. It should print something like /usr/local/bin/git.
  2. Copy and paste the result into your previously created .php test file, so that it looks like this: <?php echo shell_exec('/usr/local/bin/git --version');

Hopefully it will show you which version of git is present on your system this time. Thanks for testing :)

On my Mac the path to Git is /usr/local/git/bin/git. So my test file now looks like this:

<?php echo shell_exec('/usr/local/git/bin/git --version');

The (now successful) response is:

git version 1.7.1

Thanks guys.

I just pushed some changes that should solve this issue. Have a look:

Updated .zip package:

Hi Alpacaaa, great stuff you have made! But still not working here =/

check this error message:

ZipArchive::extractTo() [ziparchive.extractto]: Invalid or unitialized Zip object
D:xampphtdocsbuilderextensionsbuilderlibclass.builderjob.php line 85

80              $dest = $path;
82              @mkdir($path);
83          }
85          $zip->extractTo($dest, $files);
86          $zip->close();
88          if ($isSymphony) {
89              $src  = array_pop(glob($path. '/symphony*'));

Thank you for your attention.

Thanks for reporting.

I will look into it. But please be aware that the Builder should run in a UNIX environment. Sorry :)

Hello Marco, I am now in debian linux (happier than ever) and I usually use the Builder. Today I came across an error that I could not solve, maybe you can give me a light.

As I understand it, when Builder writing the queue, it adds the author name in the path of Github, but some are different authors and Github users, like the Symphony itself. For example, the Builder is still trying to search the repository and not The same happens with phoque’s extensions that in Github is nils-werner

Unless I’m doing something wrong, is how to improve it?

Create an account or sign in to comment.

Symphony • Open Source XSLT CMS

Server Requirements

  • PHP 5.3-5.6 or 7.0-7.3
  • PHP's LibXML module, with the XSLT extension enabled (--with-xsl)
  • MySQL 5.5 or above
  • An Apache or Litespeed webserver
  • Apache's mod_rewrite module or equivalent

Compatible Hosts

Sign in

Login details