|
Lines 33-38
use C4::Output;
Link Here
|
| 33 |
use Koha::Cache::Memory::Lite; |
33 |
use Koha::Cache::Memory::Lite; |
| 34 |
use Koha::Exceptions::Plugin; |
34 |
use Koha::Exceptions::Plugin; |
| 35 |
use Koha::Plugins::Methods; |
35 |
use Koha::Plugins::Methods; |
|
|
36 |
use Module::Refresh; |
| 36 |
|
37 |
|
| 37 |
use constant ENABLED_PLUGINS_CACHE_KEY => 'enabled_plugins'; |
38 |
use constant ENABLED_PLUGINS_CACHE_KEY => 'enabled_plugins'; |
| 38 |
|
39 |
|
|
Lines 231-241
sub InstallPlugins {
Link Here
|
| 231 |
|
232 |
|
| 232 |
my @plugin_classes = $self->plugins(); |
233 |
my @plugin_classes = $self->plugins(); |
| 233 |
my @plugins; |
234 |
my @plugins; |
|
|
235 |
my $refresher = Module::Refresh->new; |
| 234 |
|
236 |
|
| 235 |
foreach my $plugin_class (@plugin_classes) { |
237 |
foreach my $plugin_class (@plugin_classes) { |
| 236 |
if ( can_load( modules => { $plugin_class => undef }, nocache => 1 ) ) { |
238 |
if ( can_load( modules => { $plugin_class => undef }, nocache => 1 ) ) { |
| 237 |
next unless $plugin_class->isa('Koha::Plugins::Base'); |
239 |
next unless $plugin_class->isa('Koha::Plugins::Base'); |
| 238 |
|
240 |
|
|
|
241 |
# If using Plack or memcached and reinstalling a Plugin that existed previously, the module needs to be refreshed. |
| 242 |
my $module_name = ($plugin_class =~ s|::|/|gr) . '.pm'; |
| 243 |
|
| 244 |
try { |
| 245 |
$refresher->refresh_module($module_name); |
| 246 |
} |
| 247 |
catch { |
| 248 |
warn "$_"; |
| 249 |
}; |
| 250 |
|
| 239 |
my $plugin; |
251 |
my $plugin; |
| 240 |
my $failed_instantiation; |
252 |
my $failed_instantiation; |
| 241 |
|
253 |
|
| 242 |
- |
|
|