Hi everyone,

Despite having composed some of the docs about this, I'm still searching for a better personal development workflow than my current mess of a setup. Basically, I want the least number of tools and git commands/GUIs in my way of doing actual work, but I need version control and somewhat painless syncing between dev and prod sites. I don't really care about DB syncing, I'll do it manually. And I'd like to avoid needing god-like git ninja skillz to do common stuff.

It seems this has come up quite often already, so whenever I have something reasonable going, I'll happily assemble an article summarizing the various options. (At the moment I'm trying to avoid kitchen sink stuff like Capistrano or Deploy but that would probably be in the article.)

My current plan is to develop my Symphony projects on my local Mac's Apache (in subdirs of localhost), and push changes to personal Github repos using git remotes. Then deployment to production would consist of agit pull from the Github repo, probably also using gitignore for config.php and .htaccess files. But I'm surely missing some gotchas here.

Interested in any ideas from folks who have something serviceable and fairly pleasant!

As I've talked about in the past, we use capistrano as the deployment tool for all our Symphony (and Rails) sites. The advantages are:

  • Scripted means it's hard to stuff up.
  • Each release is archived (we keep the 10 latest releases), so you can roll them back immediately. The latest release is simple symlinked.
  • Each release is a separate git clone so less chance of conflicts during deploys.
  • You can add additional steps to your deployment process on a per-site basis. For example, symlinking to a shared assets directory that users can FTP to, or scripting DB imports/backups.
  • It's easy.

Given that we do a bit of ruby stuff alongside our Symphony work, I use rvm and bundler to keep things clean and the various versions of things tracked alongside the app development.

We use Rowan's approach at work. It's a one time setup and usually works pretty well for us.

The most painful thing is CMS updates. Because we commit /symphony as part of site, it often conflicts when trying to pull from the official repo (and it sees the version in the 'site' as more recent then the one in the repo, at least that's my theory). We get around this fairly manually by just copying the /symphony folder over the one in the repo and manually updating the submodules.

I think storing the 'symphony' repo as a separate branch would solve this issue, but I'm yet to test 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