Symphony 2 can now be found at github. Fine. I can browse the source, download the package, see changes. But hey: How do I actually use that thing?!

I've been looking at the help of github but there are always these command line things that I don't really understand. Is there a GUI anywhere (I'm on a Mac)? How can I submit patches?

Could anybody write down a step-by-step tutorial for dummies how to use github in connection with Symphony? Thank you so much!

I think Github has its own Mac GUI called Gitnub. There's also Git GUI.

I'm in the middle of figuring all this out myself but I think I've got a handle on the basics, so I'll try to break it down and Alistair or someone can correct or add. I'm assuming you've got Git installed.

Just clone the current repository (no plans to submit patches or changes)

Open Terminal and cd to the directory you want your symphony-2 folder to go. Then run:

 git clone git://

To install it into a different directory (i.e. not symphony-2), run:

 git clone git:// directoryname

Fork the current repository (if you plan to submit patches or changes)

Make sure you've got a github account and that you're logged in. Go to: Click the "fork" button Now you should have your own version of the repository. Use the same commands as above, but you'll substitute your username like this:

 git clone git://

Submit changes

Note: I think you can either submit patches or issue a "pull request" (ask the repository maintainer to pull in the changes made in your fork). Not sure which the Symphony team prefers, but I'm only familiar with the latter, so that's what I'll describe here. Also, note that this assumes you've "forked" symphony and not just cloned it.

Once you've edited whatever files you're working on, cd to your symphony directory as run:

 git commit -a

If you've added any files that didn't exist before, use:

 git add path/to/filename.php

Then push the changes back into your own forked repository:

 git push origin

Once you've done that, you can go to your repo's github page and click the "pull request" button. Again, though, I'm not 100% sure if this is the team's preferred method.

If you're on OS X GitX is definitely worth a look. Makes it easier to single out sets of files for commits than doing it the command line (plus it's pretty).

On Windows, download msysgit here: .

After installation, run the app, which will open a MinG/bash window. (Note: I did not need to download cygwin.)

Use czheng's instructions (above) for downloading (cloning) Symphony 2.

I think you can either submit patches or issue a "pull request" [...] Not sure which the Symphony team prefers

Pull requests are definitely our preferred method. I'll explain how github's interface works for this...

How to submit a pull request:

[Edit: Silly me, the whole thing is explained better on github. Please refer to that instead of my below explanation.]

  1. You need a github account. The free one will do nicely.
  2. Head to the symphony-2 repository and press the "fork" button on that page. This will create a clone at
  3. After you've made some changes on your own repository, head back to the symphony-2 page and press the "pull request" button. You'll see your fork's address at the top in a large font. Type in a very informative message that tells us why your changes should be merged. If you fixed any bugs, please include their issue numbers from the bug tracker. Check "symphony" as the recipient, and hit "Send Pull Request"!

How to use git with github:

Make sure you have git installed somewhere. I won't go into how to do this or how to use git since there are plenty of other good explanations on the web.

$ git clone master path-to-fork-location
$ cd path-to-fork-location/symphony-2

The above will download all the files from your forked repository. (Obviously you can use a different path to path-to-fork-location.) Make your changes and commit them to the master branch, then when you want to push them back to github:

$ git push

(The origin is automatically stored, so you don't need to specify 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