Beispiel #1
0
 /**
  * Asserts that item type is collection defined type
  *
  * @param string $instanceName
  * @param string|int|null $index
  * @return void
  * @throws \InvalidArgumentException
  */
 private function assertValidTypeLazy($instanceName, $index = null)
 {
     $realType = $this->configInterface->getInstanceType($this->configInterface->getPreference($instanceName));
     if (!in_array($this->type, $this->classReaderInterface->getParents($realType), true)) {
         $this->throwTypeException($realType, $index);
     }
 }
Beispiel #2
0
 /**
  * Retrieve list of parents
  *
  * @param string $type
  * @return array
  */
 public function getParents($type)
 {
     if (!class_exists($type)) {
         return $this->_default;
     }
     return $this->_classReader->getParents($type) ?: $this->_default;
 }
Beispiel #3
0
 /**
  * Get list of method parameters
  *
  * Retrieve an ordered list of constructor parameters.
  * Each value is an array with following entries:
  *
  * array(
  *     0, // string: Parameter name
  *     1, // string|null: Parameter type
  *     2, // bool: whether this param is required
  *     3, // mixed: default value
  * );
  *
  * @param string $className
  * @return array|null
  */
 public function getParameters($className)
 {
     // if the definition isn't found in the list gathered from the compiled file then  using reflection to find it
     if (!array_key_exists($className, $this->_definitions)) {
         return $this->reader->getConstructor($className);
     }
     $definition = $this->_definitions[$className];
     if ($definition !== null) {
         if (is_string($this->_signatures[$definition])) {
             $this->_signatures[$definition] = $this->_unpack($this->_signatures[$definition]);
         }
         return $this->_signatures[$definition];
     }
     return null;
 }