diff --git a/library/Class/DigitalResource/Batch.php b/library/Class/DigitalResource/Batch.php index 0293ea57131135fffc4e45f4f81ac86b01500c00..9bb71cb82bb27b8a1a41a5c0eae3482df5e7533e 100644 --- a/library/Class/DigitalResource/Batch.php +++ b/library/Class/DigitalResource/Batch.php @@ -29,8 +29,7 @@ class Class_DigitalResource_Batch extends Class_Batch_RessourceNumerique { protected function _getService() { - $service = $this->_config->getService(); - return new $service($this->_config); + return $this->_config->getServiceInstance(); } diff --git a/library/Class/DigitalResource/Config.php b/library/Class/DigitalResource/Config.php index 0b2139bc2fc24ef6329c1026ec821335f2f807e0..4cd3a4df17cd5f0d8c229f67a1dbbb887a9cc6eb 100644 --- a/library/Class/DigitalResource/Config.php +++ b/library/Class/DigitalResource/Config.php @@ -30,7 +30,12 @@ class Class_DigitalResource_Config extends Class_Entity { public static function getName() { - return (new Class_DigitalResource_Name())->getName(static::class); + return static::getNameFor(static::class); + } + + + public static function getNameFor($class_name) { + return (new Class_DigitalResource_Name())->getName($class_name); } @@ -39,6 +44,12 @@ class Class_DigitalResource_Config extends Class_Entity { } + public static function getInstanceFor($class_name) { + return Class_DigitalResource::getInstance()->configFor(static::getNameFor($class_name)); + } + + + public static function getInstanceFromController($controller) { return Class_DigitalResource::getInstance()->configFor((new Class_DigitalResource_Name())->getNameFromController($controller)); } @@ -228,4 +239,10 @@ class Class_DigitalResource_Config extends Class_Entity { public function getRecordSsoUrl($user, $record) { return $this->getAlbumSsoUrl($suer, $record->getAlbum()); } + + + public function getServiceInstance() { + $service = $this->getService(); + return new $service($this); + } } \ No newline at end of file diff --git a/library/Class/DigitalResource/Name.php b/library/Class/DigitalResource/Name.php index 0268721d61b3a9a1d2b7405f637c7ed587a2fc53..fdc589a83ffb1a70118f52135a89f7867eb32a23 100644 --- a/library/Class/DigitalResource/Name.php +++ b/library/Class/DigitalResource/Name.php @@ -37,5 +37,4 @@ class Class_DigitalResource_Name { $path = array_reverse(explode('/', dirname(static::getPath($class)))); return array_shift($path); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/library/Class/DigitalResource/Service.php b/library/Class/DigitalResource/Service.php index 6c620c786d649febb211f71be05ba45959222145..9d92f8e9ea08e04a6e13a3c964cc665f02b0aa1c 100644 --- a/library/Class/DigitalResource/Service.php +++ b/library/Class/DigitalResource/Service.php @@ -23,10 +23,17 @@ class Class_DigitalResource_Service extends Class_WebService_BibNumerique_Abstract { protected $_config; + + public static function getInstance() { + return Class_DigitalResource_Config::getInstanceFor(static::class)->getServiceInstance(); + } + + public function __construct($config) { $this->_config = $config; } + protected function getDocType() { return $this->_config->getDocType(); } @@ -41,4 +48,3 @@ class Class_DigitalResource_Service extends Class_WebService_BibNumerique_Abstra return $this->_config->getName(); } } -?> \ No newline at end of file diff --git a/library/digital_resources/Assimil/tests/AssimilTest.php b/library/digital_resources/Assimil/tests/AssimilTest.php index 5ede329fdab5365025ca0d5fb1c7d98990bdbdf3..7f36790d030a3013c4f05b1790165ba1c08d4011 100644 --- a/library/digital_resources/Assimil/tests/AssimilTest.php +++ b/library/digital_resources/Assimil/tests/AssimilTest.php @@ -288,7 +288,7 @@ abstract class AssimilServiceTestCase extends ModelTestCase { ->whenCalled('open_url') ->answers(true); - $this->_service = new Assimil_Service(new Assimil_Config(new Class_DigitalResource_Wrapper(Class_DigitalResource::getInstance(), 'Assimil'))); + $this->_service = Assimil_Service::getInstance(); Assimil_Service::setDefaultHttpClient($this->_http_client); $this->_service->harvest(); Class_Album::clearCache(); @@ -410,7 +410,7 @@ class AssimilServiceSecondHarvestTest extends AssimilServiceTestCase { ->whenCalled('open_url') ->answers(true); - $service = new Assimil_Service(new Assimil_Config(new Class_DigitalResource_Wrapper(Class_DigitalResource::getInstance(), 'Assimil'))); + $service = Assimil_Service::getInstance(); Assimil_Service::setDefaultHttpClient($http_client); $service->harvest(); Class_Album::clearCache(); diff --git a/library/digital_resources/LaSourisQuiRaconte/tests/LaSourisQuiRaconteTest.php b/library/digital_resources/LaSourisQuiRaconte/tests/LaSourisQuiRaconteTest.php index 6cebb813c9b96fd0be1e729d079892c59b79bdca..2c66afcfb442bf4b8d44891e96d657c4eb4e5c14 100644 --- a/library/digital_resources/LaSourisQuiRaconte/tests/LaSourisQuiRaconteTest.php +++ b/library/digital_resources/LaSourisQuiRaconte/tests/LaSourisQuiRaconteTest.php @@ -36,10 +36,7 @@ class LaSourisQuiRaconteFixtures { ->answers('a picture'); LaSourisQuiRaconte_Service::setDefaultHttpClient($http_client); - return new LaSourisQuiRaconte_Service( - new LaSourisQuiRaconte_Config( - new Class_DigitalResource_Wrapper(Class_DigitalResource::getInstance(), - 'LaSourisQuiRaconte'))); + return LaSourisQuiRaconte_Service::getInstance(); } diff --git a/library/digital_resources/Lekiosk/tests/LeKioskTest.php b/library/digital_resources/Lekiosk/tests/LeKioskTest.php index bd14d04f72c2ff164c4c7743519a1196c3924239..34db4bb958a764747c18f4ab1de0f006c70b3947 100644 --- a/library/digital_resources/Lekiosk/tests/LeKioskTest.php +++ b/library/digital_resources/Lekiosk/tests/LeKioskTest.php @@ -41,8 +41,7 @@ class LekioskAdminVars { abstract class LeKioskLinkModeLinkTestCase extends ModelTestCase { protected - $_storm_default_to_volatile = true, - $_lekiosk_config; + $_storm_default_to_volatile = true; public function setUp() { @@ -53,10 +52,6 @@ abstract class LeKioskLinkModeLinkTestCase extends ModelTestCase { 'mail_site' => '']); LekioskAdminVars::activate(); - - $this->_lekiosk_config = - new Assimil_Config(new Class_DigitalResource_Wrapper (Class_DigitalResource::getInstance(), 'LeKiosk')); - $this->_module_menu = new Class_DigitalResource_ModuleMenu($this->_lekiosk_config); } } diff --git a/library/digital_resources/Musicme/tests/MusicmeTest.php b/library/digital_resources/Musicme/tests/MusicmeTest.php index e1ef355e6846b5247aa0f84f416125e43204613f..087c824b9b720c9a02d32e0eff42450b7f85f138 100644 --- a/library/digital_resources/Musicme/tests/MusicmeTest.php +++ b/library/digital_resources/Musicme/tests/MusicmeTest.php @@ -58,13 +58,11 @@ class MusicmeFixtures { Musicme_Service::setDefaultHttpClient($http_client); - return new Musicme_Service( - new Musicme_Config( - new Class_DigitalResource_Wrapper(Class_DigitalResource::getInstance(), - 'Musicme'))); + return Musicme_Service::getInstance(); } + public function logValidUser() { $group = $this->fixture('Class_UserGroup', ['id' => 1]); diff --git a/library/digital_resources/Omeka/Service.php b/library/digital_resources/Omeka/Service.php index e187862f535c700cb5b8fd7043df988a4cfef096..bdad451fb34904e936e3d57cc422c80d4c57eee1 100644 --- a/library/digital_resources/Omeka/Service.php +++ b/library/digital_resources/Omeka/Service.php @@ -23,6 +23,11 @@ class Omeka_Service extends Class_WebService_BibNumerique_AbstractOAI { protected $_config; + public static function getInstance() { + return Class_DigitalResource_Config::getInstanceFor(static::class)->getServiceInstance(); + } + + public function __construct($config) { $this->_config = $config; $this->_oaiws = $config->newOAIClient(); diff --git a/library/digital_resources/Omeka/tests/OmekaTest.php b/library/digital_resources/Omeka/tests/OmekaTest.php index 64d00ef81210739e4af806922be30f80e4087fef..0e32554defc59287bb7905b1bf697d0536043e83 100644 --- a/library/digital_resources/Omeka/tests/OmekaTest.php +++ b/library/digital_resources/Omeka/tests/OmekaTest.php @@ -36,10 +36,7 @@ class OmekaFixtures { ->answers(file_get_contents(__DIR__ . '/omeka_oai_page_1.xml')); Omeka_Service::setDefaultHttpClient($http_client); - return new Omeka_Service( - new Omeka_Config( - new Class_DigitalResource_Wrapper(Class_DigitalResource::getInstance(), - 'Omeka'))); + return Omeka_Service::getInstance(); } } @@ -148,7 +145,7 @@ class OmekaHarvestedTest extends AbstractControllerTestCase { /** @test */ public function withoutRootURLShouldBeDisabled() { Class_AdminVar::set('Omeka_ROOT_URL', ''); - $this->assertFalse((new Class_DigitalResource())->configFor('Omeka')->isEnabled()); + $this->assertFalse(Omeka_Config::getInstance()->isEnabled()); } } ?> \ No newline at end of file diff --git a/library/digital_resources/Skilleos/tests/SkilleosTest.php b/library/digital_resources/Skilleos/tests/SkilleosTest.php index 634a8a92d754f789188439b45c75374bce2a33cc..e58a6dd042c642b4b8909e9aa65d8801c3ab884e 100644 --- a/library/digital_resources/Skilleos/tests/SkilleosTest.php +++ b/library/digital_resources/Skilleos/tests/SkilleosTest.php @@ -39,30 +39,6 @@ class SkilleosAdminVars { - -abstract class SkilleosLinkModeLinkTestCase extends ModelTestCase { - protected - $_storm_default_to_volatile = true, - $_skilleos_config; - - - public function setUp() { - parent::setUp(); - $this->fixture('Class_Profil', [ - 'id' => 1, - 'libelle' => 'portail', - 'mail_site' => '']); - - SkilleosAdminVars::activate(); - - $this->_skilleos_config = - new Skilleos_Config(new Class_DigitalResource_Wrapper (Class_DigitalResource::getInstance(), 'Skilleos')); - $this->_module_menu = new Class_DigitalResource_ModuleMenu($this->_skilleos_config); - } -} - - - class SkilleosModulesControllerUserWithGroupWithRightTest extends AbstractControllerTestCase { @@ -229,7 +205,7 @@ abstract class SkilleosServiceTestCase extends AbstractControllerTestCase { ->beStrict(); - $this->_service = new Skilleos_Service(new Skilleos_Config(new Class_DigitalResource_Wrapper(Class_DigitalResource::getInstance(), 'Skilleos'))); + $this->_service = Skilleos_Service::getInstance(); Skilleos_Service::setDefaultHttpClient($http_client);