Example #1
0
 /**
  * @param JobTypeInterface $jobType
  * @param ContextInterface $context
  * @param array|null       $parameters
  * @return array
  */
 public static function resolveParameters(JobTypeInterface $jobType, ContextInterface $context, $parameters = null)
 {
     $result = array();
     $parameters = $parameters == null ? array() : $parameters;
     foreach ($jobType->getParameterTypes() as $parameterType) {
         if (0 === strpos($parameterType, '@')) {
             $key = substr($parameterType, 1);
             $result[] = $context->has($key) ? $context->get($key) : null;
         } else {
             $result[] = array_shift($parameters);
         }
     }
     return $result;
 }
 /**
  * @param JobTypeInterface $jobType
  * @return DeserializationContext
  */
 protected function getResponseDeserializationContext(JobTypeInterface $jobType)
 {
     $context = new DeserializationContext();
     $this->configureContext($context, $jobType->getReturnTypeOptions());
     return $context;
 }
 /**
  * @param JobTypeInterface $jobType
  * @param bool             $loadClassMetadata Whether to load class metadata of the job class
  */
 public function register(JobTypeInterface $jobType, $loadClassMetadata = false)
 {
     if ($loadClassMetadata) {
         /**
          * @var ClassMetadata $classMetadata
          */
         $classMetadata = $this->metadataFactory->getMetadataForClass($jobType->getClass())->getRootClassMetadata();
         $jobType->setParameterTypes($classMetadata->getParameterTypes($jobType->getMethod()));
         $jobType->setParameterTypeOptions($classMetadata->getParameterOptions($jobType->getMethod()));
         $jobType->setReturnType($classMetadata->getReturnType($jobType->getMethod()));
         $jobType->setReturnTypeOptions($classMetadata->getReturnOptions($jobType->getMethod()));
     }
     $jobType->setQueue($this->queueConfig->getQueue($jobType->getName()));
     $this->types[$jobType->getName()] = $jobType;
 }