This site has been archived. To learn more about our current products Ibexa Content, Ibexa Experience, Ibexa Commerce head over to the Ibexa Developer Portal

eZ Community » Blogs » David Ennis » The nitty-gritty-details of setting...


David Ennis

The nitty-gritty-details of setting up an extension

Friday 04 May 2012 11:45:55 am

  • Currently 5 out of 5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Preparing for launch on the eZ Market has made me get my house in order regarding the structure of an extension. I will be sharing these experiences with real-world examples in the near future.

Over the past few months, we have been preparing an extension for the eZ Market. 
My Colleague  Terry has started a blog to describe his experience of the overall process from inception to launch on the eZ Market.  

After his next post, I will start to follow up with some real-world experience in setting up an extension.  At the end of it (and based on feedback and comments), I will commit a project for all which will be a full and complete wire-frame for use as a template for writing an extension.

Below are some of the things I will cover..


  • What is a good directory structure?
  • should I build my extension intended to be activated as an 'ActiveExtension' or and 'ActiveAccessExtension' ? This is NOT a trivial decision due to the order of precedence for settings files and how they override each other.
  • Do I jam my extension full items in override.ini.append.php or consider using a design directory override for this. (This also depends on the decision about extensions above)
  • Being aware of other installed extensions and playing nicely.
  • Do I put my new extension settings in a new settings file or append them to another one that seems logical.
  • Did you know that in recent versions of extensions, you can define dependencies and load ordering? Cool stuff and essential at times.
  • Speaking of settings, what files are needed and what do they actual do?
  • Settings specifically related to integration (Admin tab and menu, ezwt custom button, etc) 
  • Separate classes for logic or put things in my module files only?
  • How can I set up my extension so that it can be updated as easily as possible
  • The big ones:
    • When should I decide to make a template operator and how do I do it?
    • When should I make a custom fetch and how do I do it?
    • When should I make module and how do I do it?

I will start in the coming days based roughly on the order listed above.  Chime in if there are things you would prefer in a different order or want other items added.

Proudly Developed with from