mirror of
				https://gitlab.com/Chill-Projet/chill-bundles.git
				synced 2025-10-29 00:14:58 +00:00 
			
		
		
		
	Adding doc to Service/CustomFieldProvider.php
This commit is contained in:
		| @@ -26,28 +26,46 @@ use Symfony\Component\DependencyInjection\ContainerAwareInterface; | ||||
| use Symfony\Component\DependencyInjection\ContainerInterface; | ||||
|  | ||||
| /** | ||||
|  * Receive all service tagged with 'chill.custom_field' | ||||
|  * | ||||
|  * Receive all the services tagged with 'chill.custom_field'. | ||||
|  *  | ||||
|  * The services tagged with 'chill.custom_field' are services used to declare | ||||
|  * a new custom field type. The tag must contain a 'type' variable (that must | ||||
|  * be unique), this type is used to identify this custom field in the form | ||||
|  * declration  | ||||
|  *  | ||||
|  * For example (in services.yml) : | ||||
|  *  services: | ||||
|  *      chill.icp2.type: | ||||
|  *          tags: | ||||
|  *              - { name: 'chill.custom_field', type: 'ICPC2' } | ||||
|  *  | ||||
|  * @author Julien Fastré <julien.fastre@champs-libres.coop> | ||||
|  */ | ||||
| class CustomFieldProvider implements ContainerAwareInterface | ||||
| { | ||||
|     /** @var array $servicesByType The services indexes by the type */ | ||||
|     private $servicesByType = array(); | ||||
|      | ||||
|     /** | ||||
|      * | ||||
|      * @var \Symfony\Component\DependencyInjection\ContainerInterface | ||||
|      */ | ||||
|     /** @var Container $container The container */ | ||||
|     private $container; | ||||
|      | ||||
|     /** | ||||
|      * Add a new custom field to the provider | ||||
|      *  | ||||
|      * @param type $serviceName The name of the service (declared in service.yml) | ||||
|      * @param type $type The type of the service (that is used in the form to  | ||||
|      * add this type) | ||||
|      */ | ||||
|     public function addCustomField($serviceName, $type) | ||||
|     { | ||||
|         $this->servicesByType[$type] = $serviceName; | ||||
|     } | ||||
|      | ||||
|     /** | ||||
|      * Get a custom field stored in the provider. The custom field is identified | ||||
|      * by its type. | ||||
|      *  | ||||
|      * @param string $type | ||||
|      * @param string $type The type of the wanted service | ||||
|      * @return CustomFieldInterface  | ||||
|      */ | ||||
|     public function getCustomFieldByType($type) | ||||
| @@ -56,10 +74,14 @@ class CustomFieldProvider implements ContainerAwareInterface | ||||
|             return $this->servicesByType[$type]; | ||||
|         } else { | ||||
|             throw new \LogicException('the custom field with type '.$type.' ' | ||||
|                     . 'is not found'); | ||||
|                 . 'is not found'); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /* | ||||
|      * (non-PHPdoc) | ||||
|      * @see \Symfony\Component\DependencyInjection\ContainerAwareInterface::setContainer() | ||||
|      */ | ||||
|     public function setContainer(ContainerInterface $container = null) | ||||
|     { | ||||
|         if ($container === null) { | ||||
| @@ -69,9 +91,13 @@ class CustomFieldProvider implements ContainerAwareInterface | ||||
|         $this->container = $container; | ||||
|     } | ||||
|      | ||||
|     /** | ||||
|      * Get all the custom fields known by the provider | ||||
|      *  | ||||
|      * @return array Array of the known custom fields indexed by the type. | ||||
|      */ | ||||
|     public function getAllFields() | ||||
|     { | ||||
|         return $this->servicesByType; | ||||
|     } | ||||
|  | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user