[wp-hackers] Sharing codebase between plugins

Stephen Rider wp-hackers at striderweb.com
Mon Jun 16 21:03:44 UTC 2014


Hi Nikola --

#1 -- I wouldn't worry too terribly about size.  Is the plugin multiple megabytes of data?

#2 -- You might take a look at my own Strider Core. https://code.google.com/p/strider-core/
Feel free to borrow the "best version" mechanism for your own purposes, but if you do, PLEASE be sure to change all "strider_core" strings to something else -- Very Important.

Stephen Rider


On Jun 5, 2014, at 8:56 AM, Nikola Nikolov <nikolov.tmw at gmail.com> wrote:

> I see,
> 
> I have a couple of concerns with such an approach though:
> 
> #1 Size - the core plugin is actually going to consist of multiple
> directories, scripts, images, etc. so it's not really efficient to have it
> included in each and every one of the extra plugins.
> #2 Updates - using your approach is difficult to use a specific version of
> the library. Say the user updates one of your plugins, but not the rest.
> Then you might use the latest version of the library, or an old version of
> the library(in which case, you might get fatal errors, due to undefined
> functions, etc.)
> 
> Thanks for sharing though,
> Nikola
> 
> 
> On Thu, Jun 5, 2014 at 4:52 PM, Guus (IFS) <guus at inspiration-for-success.com
>> wrote:
> 
>> I am using a library file with some useful stuff in multiple plugins and
>> just set a constant to check if the code is already included.
>> 
>> <?php // start of library file
>> if (!defined('_MY_LIBRARY_FILE_INCLUDED')) {
>>   #define('_MY_LIBRARY_FILE_INCLUDED',true);
>>   libraryFunction1() {
>>       // code
>>   }
>>   libraryFunction2() {
>>       // code
>>   }
>> }
>> // end of library file
>> ?>
>> 
>> -----Original Message----- From: Nikola Nikolov
>> Sent: Thursday, June 05, 2014 5:27 AM
>> To: wp-hackers at lists.automattic.com
>> Subject: [wp-hackers] Sharing codebase between plugins
>> 
>> 
>> What do you do when you want to avoid code duplication by sharing the same
>> code base between multiple plugins?
>> 
>> Here's the situation that I'm in:
>> 
>> I have a plugin that adds some custom post types and functionality. Another
>> plugin that uses similar functionality is going to be developed. Possibly
>> in the future more plugins that use those post types will also be created.
>> 
>> So the idea is to separate out a "core" plugin that will allow any of the
>> plugins to function both on their own and combined, without having to ship
>> the code with each one(well - probably we'll need at least an archive of
>> the core plugin).
>> 
>> Now my question is how to handle that dependency(note that my client would
>> prefer if the core plugin is not listed on the plugins page - not sure if
>> that's really possible).
>> 
>> Right now I've thought about the following solutions:
>> - Have each of the plugins contain a .zip archive with the core plugin.
>> Then perhaps use https://github.com/thomasgriffin/TGM-Plugin-Activation in
>> order to define the dependency in each plugin. I'm just not sure how it
>> would handle updates - so when the user updates a sub-plugin it should
>> update the core plugin if the sub-plugin is bundled with an updated version
>> - Copy the core plugin as a mu-plugin if it's not already there. Again not
>> sure how to handle updates. Also when should I copy the plugin files - what
>> if FTP credentials are required?
>> 
>> I think my main concern are updates.
>> 
>> For instance how to make sure that I'm using the correct core base? What if
>> the user updates one of the sub-plugins and that updates the core plugin,
>> but they don't update the rest of the sub-plugins? Ideally I should have
>> things compatible between versions, but what if I have to introduce a
>> change that is not compatible?
>> 
>> I also looked at the Plugin Dependencies plugin (
>> https://wordpress.org/plugins/plugin-dependencies/ ), but I don't really
>> want to add another plugin to the bundle.
>> 
>> Thanks,
>> Nikola
>> _______________________________________________
>> wp-hackers mailing list
>> wp-hackers at lists.automattic.com
>> http://lists.automattic.com/mailman/listinfo/wp-hackers
>> _______________________________________________
>> wp-hackers mailing list
>> wp-hackers at lists.automattic.com
>> http://lists.automattic.com/mailman/listinfo/wp-hackers
>> 
> _______________________________________________
> wp-hackers mailing list
> wp-hackers at lists.automattic.com
> http://lists.automattic.com/mailman/listinfo/wp-hackers



More information about the wp-hackers mailing list