Comments on: Structuring your Magento project for Engineering, not Hacking http://www.aschroder.com/2010/07/structuring-your-magento-project-for-engineering-not-hacking/ Notes on Web Development Wed, 23 Dec 2020 09:25:05 +0000 hourly 1 https://wordpress.org/?v=4.8.15 By: Kalen Jordan http://www.aschroder.com/2010/07/structuring-your-magento-project-for-engineering-not-hacking/comment-page-1/#comment-10250 Wed, 22 May 2013 12:30:49 +0000 http://www.aschroder.com/?p=879#comment-10250 How did I not find this blog post until now. This is fantastic. Looks like it’s been a few years since you originally wrote this. Do you still use more or less the same approach?

I started off symlinking individual extensions (without modman), and that got a bit complicated, then moved towards a single repository for the entire project. That’s been nice, and it’s always comforting knowing you can rollback the entire project in one `git checkout` if you need to. But I’m beginning to work on an extension that I need to deploy to multiple Magento instances, so I think it’s time to go back to modman’ing it up.

Thanks!

]]>
By: Ashley http://www.aschroder.com/2010/07/structuring-your-magento-project-for-engineering-not-hacking/comment-page-1/#comment-2541 Sun, 21 Aug 2011 01:52:48 +0000 http://www.aschroder.com/?p=879#comment-2541 Thanks Dane!

]]>
By: Dane Lowe http://www.aschroder.com/2010/07/structuring-your-magento-project-for-engineering-not-hacking/comment-page-1/#comment-2521 Tue, 16 Aug 2011 06:09:15 +0000 http://www.aschroder.com/?p=879#comment-2521 As much for my future reference as anything else

This is a good line to delete all symlinks in a directory, which works well if you need to start from scratch on your modman setup, assuming of course that you haven’t put any other symlinks in the magento installation

find . -maxdepth 1 -type l -exec rm -f {} \;

]]>
By: Andrew http://www.aschroder.com/2010/07/structuring-your-magento-project-for-engineering-not-hacking/comment-page-1/#comment-2480 Tue, 26 Jul 2011 12:31:33 +0000 http://www.aschroder.com/?p=879#comment-2480 Ashley,

Thanks for the reply!

After a few days of research, I’ve also come to the conclusion that there isn’t an easy/elegant way to do this. What I think I’ll have to end up doing is developing the custom theme / code changes off the live server to integrate when stable as there aren’t too many database changes involved and those that are can easily once the 2nd site is live.

Once I have a second, stable storefront up I can populate it with data (products, categories, etc) on the live site under a temporary test domain name, which will ensure that the data for both sites is reflected in the one live DB.

Again, not perfect, but the least complicated solution I’ve seen…..

]]>
By: Ashley http://www.aschroder.com/2010/07/structuring-your-magento-project-for-engineering-not-hacking/comment-page-1/#comment-2466 Sat, 23 Jul 2011 10:19:36 +0000 http://www.aschroder.com/?p=879#comment-2466 Hi, Andrew

Thanks for the feedback. That’s a tricky situation.

Normally with new store’s I’d set up CMS blocks/pages via a module sql resource but in your case there’d be a painfully large amount of configuration required.

I don’t have a really good solution to your problem, I cheated a bit when I added a wholesale substore to an existing live retail store. I actually configured it as a substore on the live site, but developed the template and code changes (installing Vinai’s Customer activation module for example) through modman as normal.

Maybe you could do a dump from core_config for the specific store, but there’s lots of other settings to worry about too (i.e tax).

If you come up with a solution that works well please let us know.

]]>
By: Andrew Y http://www.aschroder.com/2010/07/structuring-your-magento-project-for-engineering-not-hacking/comment-page-1/#comment-2463 Thu, 21 Jul 2011 13:53:34 +0000 http://www.aschroder.com/?p=879#comment-2463 Great article! There is a lot in here I’ll be incorporating into my development methods. I’m currently struggling with an issue related to a multi-store development/engineering process I hope you might have some advice on. We have two unique e-commerce sites and are in the process of migrating the non-Magento site to the Magento site. The final result will be two unique domains, but one admin and code base.

However, I’m not sure how to proceed given that one database supports both a live site and a development site. As we develop the new Magento site offline, the live site’s DB information is being changed. Conversely, the information added on the development platform isn’t reflected in the live site. The problem is that two databases are constantly changing, and those changes need to be merged at launch of the second site.

I’ve considered developing the new Magento site on the live server under a development domain (in order to share a DB with the live site), as well as trying to merge both versions of the database when we’re ready to go live with the second Magento domain. However, both seem like poor and/or complex solutions. Based on your experience, could you offer any recommendations for this situation?

]]>
By: Ashley http://www.aschroder.com/2010/07/structuring-your-magento-project-for-engineering-not-hacking/comment-page-1/#comment-1973 Wed, 17 Nov 2010 20:08:47 +0000 http://www.aschroder.com/?p=879#comment-1973 @Steve Lorek – I need to look at Git don’t I? All the cool kids seem to be using it! Thanks for stopping by and the tip, I think modman has support for other SCM’s so it might be a quite easy switch.

]]>
By: Steve Lorek http://www.aschroder.com/2010/07/structuring-your-magento-project-for-engineering-not-hacking/comment-page-1/#comment-1972 Wed, 17 Nov 2010 16:42:10 +0000 http://www.aschroder.com/?p=879#comment-1972 This sounds quite similar to the way I was thinking, although i was thinking of using SVN externals rather than symlinks.

You do address that and are correct in that you can’t re-tag in Subversion – but this is a problem which Git overcomes. You can have a designated stable branch (typically called ‘master’), and you can tag within a branch if you so wish (so you might have stable-1.0 and stable 2.0 for different sites). Or jsut use the HEAD revision. Any unstable developments can be done in other branches – thus not polluting the stable branch.

You would then set up a Git repo for each project and use submodules to pull in the Magento core and the various extensions you need, referencing the correct branches/tags.

]]>
By: Barry Keenan http://www.aschroder.com/2010/07/structuring-your-magento-project-for-engineering-not-hacking/comment-page-1/#comment-1966 Sun, 14 Nov 2010 00:15:38 +0000 http://www.aschroder.com/?p=879#comment-1966 correction: …Everything else I would add as *externals…

]]>
By: Barry Keenan http://www.aschroder.com/2010/07/structuring-your-magento-project-for-engineering-not-hacking/comment-page-1/#comment-1965 Sun, 14 Nov 2010 00:13:22 +0000 http://www.aschroder.com/?p=879#comment-1965 To the main Magento one. So I would add separate external entries for: app, downloader, errors, etc…

Basically, I only want to check-in code for my theme and customisations to my own repo. Everything else (the core folders) I would add as extensions. As you say, I shouldn’t be editing those anyway.

]]>