Hi all,
I work for a web design/development studio that builds a lot of EE sites. We like to think that we stretch the boundaries a bit and create some pretty cool EE sites.
We love how flexible EE is when it comes to applying a design to a site. Our designers, who create the look and feel of a site without even considering what’s possible or not within EE, have rarely come up with anything that can’t be integrated into EE in some way.
EE’s a fantastic system, but the one thing we find frustrating is that it’s very hard to work on collaboratively. If you’ve got more than one developer, say a front-end HTML/CSS developer and a back-end developer who’s setting up how the data’s arranged and how it’s displayed within templates, in our experience, you can run into a lot of problems. Overwritten work, for one. And if you’ve got more than one environment ... especially a live environment where new data is constantly being added, you can have some real headaches.
We’d love to be using a version control system, such as SVN, to manage our sites. But EE really doesn’t lend itself to it. Unfortunately, a lot of the definition of content is stored in the database along with the content itself.
This, of course, is so that people can login and move things around, create new weblogs, etc. In our experience, clients don’t actually do this much. Once the weblogs are created and the site set up, they’ll just create new entries, upload a few images, and be done with it.
I guess what I’m getting at is that EE stores a lot of configuration and data definition in the database along with the data itself. If, as part of development, you’re changing data definition (adding new weblogs, fields, etc), this all needs to be done through the admin system, and once you’ve done these changes it’s difficult to migrate these live without repeating the whole process (very carefully) on live, or somehow merging the two databases (assuming the data on each is different and you want to keep all current data on both).
Templates are a bit of a pain too. You’ve got to create it within the EE interface, save as file, etc. There’s no setting you can flick on that tells ee to look in the template folder for templates ... I suppose this is because each template has data associated with it ... refresh interval, caching, type, allow php, php parsing, etc. This makes sense, but could this not be solved with a few directives at the top of each template? e.g.
{type:css}
{allowphp:true}
{refresh:20}
{access:banned|members|all}
etc.?
I’m aware that the configuration file now overrides settings in the database for a lot of config settings, and that’s a great start.
EE does a great job of separating presentation from content, but it’s the separation of content from configuration and customisation that would make things easier for studios that are a bit larger. Hopefully EE version 2.0 addresses some of these issues.
I’ve trawled these forums for any clue who have successfully created a development/staging/live chain with EE, using version control along the way, but have not yet seen a compelling example of someone who’s managed to do it. If you have, I implore you to explain how you’ve done it and, even better, write a wiki entry about it. If I ever manage to figure it out, it’s the first thing I’ll do.