src/PropertyInjector.php
public function performInjections($object, ClassMeta $classMeta)
    {
        if (!$this->container instanceof ContainerInterface)
        {
            throw new RuntimeException('You have to set a container in order to perform injections!');
        }

        $properties = null;

        $cacheKey = $this->getCacheKey($classMeta->getName());
        $hit = $this->cache->fetch($cacheKey);

        if ($hit !== false) {
            $properties = $hit;
        }

        if ($properties === null) {
            $properties = $this->getPropertyInjectionProperties($classMeta);
            $this->cache->save($cacheKey, $properties);
        }

        foreach ($properties as $propertyInjection) {
            $this->propertyInjection(
                $propertyInjection['className'],
                $propertyInjection['parameters'],
                $object,
                $propertyInjection['property']
            );
        }
    }
public function performInjections($object, ClassMeta $classMeta)
    {
        if (!$this->container instanceof ContainerInterface)
        {
            throw new RuntimeException('You have to set a container in order to perform injections!');
        }

        $properties = null;

        $cacheKey = $this->getCacheKey($classMeta->getName());
        $hit = $this->cache->fetch($cacheKey);

        if ($hit !== false) {
            $properties = $hit;
        }

        if ($properties === null) {
            $properties = $this->getPropertyInjectionProperties($classMeta);
            $this->cache->save($cacheKey, $properties);
        }

        foreach ($properties as $propertyInjection) {
            $this->propertyInjection(
                $propertyInjection['className'],
                $propertyInjection['parameters'],
                $object,
                $propertyInjection['property']
            );
        }
    }
Perform dependency injections for matching properties of $object.

This function will use all properties with an matching inject annotation and inject the class
annotated with var via get().

You can define injection parameters after the inject annotation as either a string or array.
E.g. @Bonefish\Inject foo
@Bonefish\Inject(vector=XYZ, key=ABC)

All injection have to be lazy if the requested service is not yet created.
This means a proxy will instead be inserted which will replace itself.

@param object $object
@param ClassMeta $classMeta
@throws RuntimeException