[wp-hackers] Sharing codebase between plugins

Nikola Nikolov nikolov.tmw at gmail.com
Thu Jun 5 15:46:20 UTC 2014


Right, having a more or less non-changing library is a good use case.
I meant more like the size of each individual plugin and the fact that it
will be increased by the full size of the core plugin. Again in my case I'm
talking about a full-size plugin that gets some of it's functionality
chopped away into separate smaller plugins.

I'll keep on thinking and post here if I find a good solution.
Nikola


On Thu, Jun 5, 2014 at 5:18 PM, Guus (IFS) <guus at inspiration-for-success.com
> wrote:

> Thanks for your comments. I agree with you as I indeed experienced the
> problems you describe with different versions, but over the years I have
> developed e.g. a 'mini library' with some stuff that is very basic and
> doesn't really change, so that's why I use that trick. So yes, you need to
> know when, why and how to do this.
>
> Related to performance I don't think Wordpress is that efficient in
> general, although I don't know the core code. With just skipping the code
> in the second file with the define or just including another file after the
> check shouldn't take much processing time.
>
>
> -----Original Message----- From: Nikola Nikolov
> Sent: Thursday, June 05, 2014 9:56 PM
> To: wp-hackers at lists.automattic.com
> Subject: Re: [wp-hackers] Sharing codebase between plugins
>
>
> 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
> _______________________________________________
> 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