Neos\Flow\ResourceManagement\ResourceManager::getPublicPersistentResourceUri PHP Method

getPublicPersistentResourceUri() public method

Returns the web accessible URI for the given resource object
public getPublicPersistentResourceUri ( PersistentResource $resource ) : string | boolean
$resource PersistentResource The resource object
return string | boolean A URI as a string or FALSE if the collection of the resource is not found
    public function getPublicPersistentResourceUri(PersistentResource $resource)
    {
        $this->initialize();
        if (!isset($this->collections[$resource->getCollectionName()])) {
            return false;
        }
        /** @var TargetInterface $target */
        $target = $this->collections[$resource->getCollectionName()]->getTarget();
        return $target->getPublicPersistentResourceUri($resource);
    }

Usage Example

 /**
  * Render the URI to the resource. The filename is used from child content.
  *
  * @param string $path The location of the resource, can be either a path relative to the Public resource directory of the package or a resource://... URI
  * @param string $package Target package key. If not set, the current package key will be used
  * @param PersistentResource $resource If specified, this resource object is used instead of the path and package information
  * @param boolean $localize Whether resource localization should be attempted or not
  * @return string The absolute URI to the resource
  * @throws InvalidVariableException
  * @api
  */
 public function render($path = null, $package = null, PersistentResource $resource = null, $localize = true)
 {
     if ($resource !== null) {
         $uri = $this->resourceManager->getPublicPersistentResourceUri($resource);
         if ($uri === false) {
             $uri = '404-Resource-Not-Found';
         }
     } else {
         if ($path === null) {
             throw new InvalidVariableException('The ResourceViewHelper did neither contain a valuable "resource" nor "path" argument.', 1353512742);
         }
         if ($package === null) {
             $package = $this->controllerContext->getRequest()->getControllerPackageKey();
         }
         if (strpos($path, 'resource://') === 0) {
             try {
                 list($package, $path) = $this->resourceManager->getPackageAndPathByPublicPath($path);
             } catch (Exception $exception) {
                 throw new InvalidVariableException(sprintf('The specified path "%s" does not point to a public resource.', $path), 1386458851);
             }
         }
         if ($localize === true) {
             $resourcePath = 'resource://' . $package . '/Public/' . $path;
             $localizedResourcePathData = $this->i18nService->getLocalizedFilename($resourcePath);
             $matches = array();
             if (preg_match('#resource://([^/]+)/Public/(.*)#', current($localizedResourcePathData), $matches) === 1) {
                 $package = $matches[1];
                 $path = $matches[2];
             }
         }
         $uri = $this->resourceManager->getPublicPackageResourceUri($package, $path);
     }
     return $uri;
 }
All Usage Examples Of Neos\Flow\ResourceManagement\ResourceManager::getPublicPersistentResourceUri