Best practice for organising custom code
This is an open discussion with 3 replies, filed under General.
Search
I'm not sure if it's best practice (although given the MVC structure I imagine it would be), but every now and then I need access to some custom PHP functions, so have a 'Custom PHP' extension that I often have installed that I can just drop them in to. Then I can call them in the XSL using the
xmlns:php="http://php.net/xsl"
declaration (at whatever level is appropriate).
I personally consider this a bit hacky so someone else might have a better response - but this works and is tidy enough.
I'd personally avoid sticking helpers into the workspace folder just because that's the 'view'.
Yeah I see what you mean with workspace being the view.
My thinking was that I shouldn't put it into symphony as that's for the core stuff, is this correct?
Ideally, it is best to create your custom coding via extensions. I find when I approach everything from the perspective of an extension, I create more reusable code for other projects. Event and data source folders in an extension folder are read by Symphony.
Nonetheless, we have all been guilty of creating some down and dirty event and data sources for one-off use in a project and stored them in the appropriate workspace folders. If you go this route, make sure you set allowEditorToParse
to false
so that you don't accidentally overwrite your custom code via the editor in the backend.
You should never store anything in the symphony
folder.
Create an account or sign in to comment.
Hi,
I am about to start writing a couple of events to help with shopping cart integration for a site. As well as the events I will be adding some other custom classes (to store cart info etc). Where is the recommended place for storing these type of helper classes?
My current thinking is within the /workspace folder, is this how other people tend to do it? I'm thinking of having something similar like workspace/custom/ and them within /custom/ have any classes etc I require.
Does this sound like a good/sensible idea? If not, what is the recommended way for doing this?