diff --git a/library/Class/WebService/SIGB/Nanook.php b/library/Class/WebService/SIGB/Nanook.php index 4e71a26a73f7614d116b9e7249efc1ebdde4973b..e7e34df207ce95373a1efb20f57205ad5b1f00ab 100644 --- a/library/Class/WebService/SIGB/Nanook.php +++ b/library/Class/WebService/SIGB/Nanook.php @@ -19,20 +19,27 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ class Class_WebService_SIGB_Nanook extends Class_WebService_SIGB_Abstract { + protected static $services = []; + + public static function makeKey($params) { + return md5(serialize($params)); + } public static function getService($params){ if (!isset($params['provide_suggest'])) $params = array_merge(['provide_suggest' => ''], $params); - if (!isset(static::$service)) { + $key = static::makeKey($params); + if (!isset(static::$services[$key])) { $instance = new static(); $classname = get_called_class().'_Service'; - static::$service = $classname::getService($params['url_serveur'], - $params['provide_suggest'] === '1'); + $service = $classname::getService($params['url_serveur'], + $params['provide_suggest'] === '1'); + static::$services[$key] = $service; } - return static::$service; + return static::$services[$key]; } }