From 52814a9fa0e061e5d8a669ea1895474e01216cfd Mon Sep 17 00:00:00 2001 From: Julian FIOL Date: Tue, 26 May 2015 14:49:20 +0200 Subject: [PATCH] Bug 14207: Improving circulation performance by caching yaml file This patch improve circulation performance by caching yaml file With this patch we saved between 300ms and 500ms on circulation page. Following Comment #3 : No useless warn No tidy Signed-off-by: Bernardo Gonzalez Kriegel Less lines, same result. Comments were useful on testing :) No errors Signed-off-by: Jonathan Druart Signed-off-by: Tomas Cohen Arazi --- C4/Utils/DataTables/ColumnsSettings.pm | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/C4/Utils/DataTables/ColumnsSettings.pm b/C4/Utils/DataTables/ColumnsSettings.pm index c84f1571ba..eb0ca54505 100644 --- a/C4/Utils/DataTables/ColumnsSettings.pm +++ b/C4/Utils/DataTables/ColumnsSettings.pm @@ -5,14 +5,20 @@ use List::Util qw( first ); use YAML; use C4::Context; use Koha::Database; +use Koha::Cache; sub get_yaml { - my $yml_path = - C4::Context->config('intranetdir') . '/admin/columns_settings.yml'; - my $yaml = eval { YAML::LoadFile($yml_path) }; - warn -"ERROR: the yaml file for DT::ColumnsSettings is not correctly formatted: $@" - if $@; + my $yml_path = C4::Context->config('intranetdir') . '/admin/columns_settings.yml'; + my $cache = Koha::Cache->get_instance(); + my $yaml = $cache->get_from_cache('ColumnsSettingsYaml'); + + unless ($yaml) { + $yaml = eval { YAML::LoadFile($yml_path) }; + warn "ERROR: the yaml file for DT::ColumnsSettings is not correctly formated: $@" + if $@; + $cache->set_in_cache( 'ColumnsSettingsYaml', $yaml, { expiry => 3600 } ); + } + return $yaml; } -- 2.39.2