Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Best place to define plugins' constants?
#1
Some plugins allow inserting constant definitions (define('WHATEVER','something');) to set custom values, usually near the beginning of the plugin file.

IMO the problem with this is, if the developer releases a new version, you have to remember to edit those lines in the new file before updating.

A simple alternative could be telling the user to insert those definitions in the root gsconfig.php

Another could be that e.g. MyPlugin did what GetSimple does: check if a myplugin/mypluginconfig.php file exists, if not it renames the (bundled) myplugin/temp.mypluginconfig.php. However I don't like this for small plugins...

What do you think about this? Other ideas?
Reply
#2
Carlos Wrote:Some plugins allow inserting constant definitions (define('WHATEVER','something');) to set custom values, usually near the beginning of the plugin file.

IMO the problem with this is, if the developer releases a new version, you have to remember to edit those lines in the new file before updating.

A simple alternative could be telling the user to insert those definitions in the root gsconfig.php

Another could be that e.g. MyPlugin did what GetSimple does: check if a myplugin/mypluginconfig.php file exists, if not it renames the (bundled) myplugin/temp.mypluginconfig.php. However I don't like this for small plugins...

What do you think about this? Other ideas?

Another idea is: use only constants for default settings and every setting is changeable using an administration page for the plugin and the settings are stored in a file in data/other. If there is no settings file, the defaults are used.
I18N, I18N Search, I18N Gallery, I18N Special Pages - essential plugins for multi-language sites.
Reply
#3
mvlcek Wrote:Another idea is: use only constants for default settings

I meant those default settings. A custom date format, things like that.

Also small plugins with no admin page, with just one or a few values to set up once.
Reply
#4
Carlos Wrote:
mvlcek Wrote:Another idea is: use only constants for default settings

I meant those default settings. A custom date format, things like that.

Also small plugins with no admin page, with just one or a few values to set up once.

In this case I suggest to use the following in your plugin:
Code:
if (!defined('myplugin_constant1')) define('myplugin_constant1', default_value);
The user can then define the constant in gsconfig.php, but if he doesn't, the default value is defined in the plugin itself.
I18N, I18N Search, I18N Gallery, I18N Special Pages - essential plugins for multi-language sites.
Reply
#5
mvlcek Wrote:The user can then define the constant in gsconfig.php, but if he doesn't, the default value is defined in the plugin itself.
That was what I meant: only for customisation, as default values would be set (your way) by the plugin -- just like GS does with all those #-commented defines.

So you don't think it's a bad idea using gsconfig.php for these things..
Reply
#6
Carlos Wrote:
mvlcek Wrote:The user can then define the constant in gsconfig.php, but if he doesn't, the default value is defined in the plugin itself.
That was what I meant: only for customisation, as default values would be set (your way) by the plugin -- just like GS does with all those #-commented defines.

So you don't think it's a bad idea using gsconfig.php for these things..

No, I think it is a good idea to use gsconfig.php for plugin specific constants, too, as long as the plugin does not force the user to enter them. This way all non-default settings are in one file. The default values for the constants defined in the plugin itself should be selected to be the most reasonable ones for the majority of users.
I18N, I18N Search, I18N Gallery, I18N Special Pages - essential plugins for multi-language sites.
Reply
#7
mvlcek Wrote:Another idea is: use only constants for default settings and every setting is changeable using an administration page for the plugin and the settings are stored in a file in data/other. If there is no settings file, the defaults are  used.

I like this approach, no matter how small the plugin and/or "default setting"... but if that isn't an option, editing gsconfig.php would be a close #2 alternative
- Chris
Thanks for using GetSimple! - Download

Please do not email me directly for help regarding GetSimple. Please post all your questions/problems in the forum!
Reply




Users browsing this thread: 1 Guest(s)