views:

695

answers:

1

Hello,

I just started playing with CakePHP and I found Wildflower CMS . I like the idea and am going to start tinkering with it. I have a question, though.

In the README, I found the following: "Wildflower is not and won't be a CakePHP plugin". What's the difference between Wildflower and something like 'Baked Simple', which claims to be a CakePHP plugin?

Is Wildflower an entire Cake application, whereas Baked Simple is just a plugin to be used within another Cake application? Could someone shed some light on this? What would be the advantages or disadvantages to each one (thinking that you want to use one of these as the base for you application, but extend it quite a bit)?

+4  A: 

Wildflower CMS uses additional class paths (configured in bootstrap.php) to load itself into your application. The CMS code itself is stored in a wildflower/ subdirectory alongside your application. If you wish to overwrite core Wildflower functionality, I believe you should be able to drag files into your app/ directory to modify them, similarly to how you can do this for some files in the cake/ directory.

CakePHP plugins come with their disadvantages. It is my understanding that the principle of plugins is to allow people to easily share self-contained functionality, therefore making it slightly more complicated to have them communicate with the main app or other plugins, or contain their own configurations or datasources. This allows developers to more easily share blocks of functionality for use in your applications, as they can put the plugin under version control instead of writing a multi-page copy&paste Bakery article.

One conventionally imagines a CMS being the core and plugins being the addons you install for the CMS. The Wildflower developer considered going down the plugin route and then must have realized that what was needed was a level of control not possible with plugins as they exists in CakePHP 1.2, so decided it was more feasible the be the base application.

By utilising this additional class path functionality, Wildflower files will be used when they don't exist in your application. It manages to step out of your way, leaving you a mostly bare app/ directory, by making the order CakePHP looks for files: app/ then wildflower/ then cake/

deizel