PHP Class Newscoop\Service\Resource\ResourceRepository

The resources can be services, configurations ...
Show file Open project: sourcefabric/newscoop Class Usage Examples

Protected Properties

Property Type Description
$repositoryProperties array
$serviceCache array

Public Methods

Method Description
getInstance ( ) : Newscoop\Service\Resource\ResourceRespository Provides the singletone of the resource repository.
getRepositoryProperties ( ) : array Provides the properties of the repository.
getResourceFor ( ResourceId $resourceId ) : mixed Provides the resource for the provided resource id.

Protected Methods

Method Description
cacheService ( string $key, mixed $service ) : mixed Provides to the cache the serice instance.
configureService ( mixed $service ) : mixed Configures the provided service instance with all configurations available in the properties of the repository.
extractSimpleClassName ( string $className ) : string Provides the simple class name based on the provided full class name (namespace + simple class name).
findInServiceCache ( string $key ) Find the service instance cached under the specified key.
loadProperties ( $path ) : array Load the property file at the specified path.
processConfigurationsPath ( string $className ) : string Provides the configuration path, where all property files are located.

Private Methods

Method Description
__construct ( )

Method Details

cacheService() protected method

Provides to the cache the serice instance.
protected cacheService ( string $key, mixed $service ) : mixed
$key string The key to be used for caching the provided service instance, *(not null not empty).
$service mixed The service instance to cache, *(not null).
return mixed The cached service instance.

configureService() protected method

This configurations works as folows: - if in the repository properties there is a property that has the format [simple class name].[field name] it will automatically assigne the value found to the service field. - the [simple class name] represents the service implementation simple class name (ex: 'ThemeServiceLocalFileSystem') - the [field name] represents the field name inside the instance that will be assigned the value for that property. ex: ThemeServiceLocalFileSystem.path=\usr\local This will configure the field path in the service instance with the provided value.
protected configureService ( mixed $service ) : mixed
$service mixed The service to be configured, not null.
return mixed The configured service instance.

extractSimpleClassName() protected method

Provides the simple class name based on the provided full class name (namespace + simple class name).
protected extractSimpleClassName ( string $className ) : string
$className string The class name from where to extract the simple class name.
return string The config path.

findInServiceCache() protected method

Find the service instance cached under the specified key.
protected findInServiceCache ( string $key )
$key string The key to search by, *(not null not empty).

getInstance() public static method

Provides the singletone of the resource repository.
public static getInstance ( ) : Newscoop\Service\Resource\ResourceRespository
return Newscoop\Service\Resource\ResourceRespository The singletone.

getRepositoryProperties() public method

Provides the properties of the repository.
public getRepositoryProperties ( ) : array
return array The array containing the properties.

getResourceFor() public method

The resource is located by using ResourceLocator (future).
public getResourceFor ( ResourceId $resourceId ) : mixed
$resourceId ResourceId The resource id used for obtaining the assigned resource, must not be null or empty.
return mixed The resource coresponding to the resource id.

loadProperties() protected method

Load the property file at the specified path.
protected loadProperties ( $path ) : array
return array The array containing the loaded properties.

processConfigurationsPath() protected method

Provides the configuration path, where all property files are located.
protected processConfigurationsPath ( string $className ) : string
$className string The class name for which to locate the property file, this done by convention the class name can contain alaso the namespace which will be removed, the property file will be considered as the simple class name with the 'properties' extension.
return string The config path based on the properties convention for the provided class name.

Property Details

$repositoryProperties protected property

protected array $repositoryProperties
return array

$serviceCache protected property

protected array $serviceCache
return array