public function load(Target $target, array $subjects, Service $service): Acl
    {
        $key = $this->buildKey($target, $subjects);
        if (!isset($this->cache[$key])) {
            $acl = $this->delegate->load($target, $subjects, $service);
            $this->cache[$key] = $acl;
        }
        return $this->cache[$key];
    }
public function load(Target $target, array $subjects, Service $service): Acl
    {
        $key = $this->buildKey($target, $subjects);
        if (!isset($this->cache[$key])) {
            $acl = $this->delegate->load($target, $subjects, $service);
            $this->cache[$key] = $acl;
        }
        return $this->cache[$key];
    }
public function load ( Target $ target , array $ subjects , Service $ service ) : Acl { $ key = $ this -> buildKey ( $ target , $ subjects ) ; if ( ! isset ( $ this -> cache [ $ key ] ) ) { $ acl = $ this -> delegate -> load ( $ target , $ subjects , $ service ) ; $ this -> cache [ $ key ] = $ acl ; } return $ this -> cache [ $ key ] ; }
Loads the ACL for a Target.

@param \Caridea\Acl\Target $target The `Target` whose ACL will be loaded
@param \Caridea\Acl\Subject[] $subjects An array of `Subject`s
@param \Caridea\Acl\Service $service The ACL service (to load parent ACLs)
@return \Caridea\Acl\Acl The loaded ACL
@throws \Caridea\Acl\Exception\Unloadable If the resource provided is invalid
@throws \InvalidArgumentException If the `subjects` argument contains invalid values
Loads the ACL for a Target .