New features and keeping it light..

I’ve read somewhere in the forum that for version 1.0.2 or 1.0.3 there will be functions like rss feed generation (and also parsing would be great ;)) and a visual editor like tinymce to be integrated.

While I do need both this things and would feel more "safe" knowing that they are implemented in the official release I'd prefer to still have them as extensions or sort of "official extensions" / "plugins" … something that are part of the release but could also be easily removed without affect the rest of the framework …

For example zend framework has a lot of great features but if you just need to put online a simple webapp for let users updating some website contents by themselves and you want to use dojo it requires you almost 20mb just for the framework… and of course you can remove all the stuffs you don't need … but you have to check dependencies … so the inverse approach (a lightweight base with pluggable modules) would be better imho.

And this can also be true for language packs and so on…

In this scenario you could have your release script that automatically strips out the "extra" modules and build two releases: standard and light…

And maybe this topic is also linked to this one (Common javascript libraries).

bye,

Giovanni.

+1

I agree to accept even API changings rather bloating  ;)

Quote

I agree to accept even API changings rather bloating

not sure to 100% understand what you mean with this… anyway… I was thinking that in the core API you could have for example (even in the "light-feature-set" version) the method "CHtml.htmlTextArea()" that loads TinyMCE or whatever…

this method will then use another method like "CPluginManager.checkPlugin('htmlTextArea')" that will check if the plugin is installed and eventually inherits from it the code that will allow it to work. else it could display a message (if in debug mode) that ask to download and install the plugin with a link to the download page… and instead of the TinyMCE editor it could just return "CHtml.textArea()" …

For the rss feed things will change as it would require a dummy class in the case that the rss plugin is not installed but instead of duplicating all methods you could just throw an exception that ask the user to download and install the plugin when the class is instanced.

Hope I’ve been able to explain what I mean in a way that can be understandable; if not just ask me  ;)

bye,

Giovanni.

p.s.

in this way you can have “CHtml.htmlTextArea()” as a standard “core” method that can be described in the CHtml api documentation without having to push all the needed code into the release.

Thanks for the suggestion. Yes, we will consider generating different packages when necessary.

I agree that things like RSS feed generation should me implemented in an extension, so it can be instaled if needed. Keep the core framework light.

Quote

Quote

I agree to accept even API changings rather bloating

not sure to 100% understand what you mean with this…

I mean very simple things - to my mind API changings (which demands a rewriting of users' code) is less evil rather adding to the core this feature, and that feature, and few those ones… - bloating. I think, I understand "right way" as you do: keeping a framework as light as possible, just allowing to use additional features via ("official" or not) extentions.