Class UrlHelper

UrlHelper class for generating URLs.

Namespace: Cake\View\Helper

Properties summary

  • $_View protected
    \Cake\View\View

    The View instance this helper is attached to

  • $_config protected
    array

    Runtime config

  • bool

    Whether the config property has already been configured with defaults

  • $_defaultConfig protected
    array

    Default config for this helper.

  • $_helperMap protected
    array

    A helper lookup table used to lazy load helper objects.

  • $helpers protected
    array

    List of helpers used by this helper

Method Summary

  • __call() public

    Provide non fatal errors on missing method calls.

  • __construct() public

    Default Constructor

  • __debugInfo() public

    Returns an array that can be used to describe the internal state of this object.

  • __get() public

    Lazy loads helpers.

  • _configDelete() protected

    Deletes a single config key.

  • _configRead() protected

    Reads a config key.

  • _configWrite() protected

    Writes a config key.

  • _confirm() protected

    Returns a string to be used as onclick handler for confirm dialogs.

  • addClass() public

    Adds the given class to the element options

  • assetTimestamp() public

    Adds a timestamp to a file based resource based on the value of Asset.timestamp in Configure. If Asset.timestamp is true and debug is true, or Asset.timestamp === 'force' a timestamp will be added.

  • assetUrl() public

    Generates URL for given asset file.

  • build() public

    Returns a URL based on provided parameters.

  • configShallow() public

    Merge provided config with existing config. Unlike config() which does a recursive merge for nested keys, this method does a simple merge.

  • css() public

    Generates URL for given CSS file.

  • getConfig() public

    Returns the config.

  • getConfigOrFail() public

    Returns the config for this specific key.

  • getView() public

    Get the view instance this helper is bound to.

  • image() public

    Generates URL for given image file.

  • implementedEvents() public

    Event listeners.

  • initialize() public

    Constructor hook method.

  • script() public

    Generates URL for given javascript file.

  • setConfig() public

    Sets the config.

  • webroot() public

    Checks if a file exists when theme is used, if no file is found default location is returned

Method Detail

__call() public

__call(string $method, array $params)

Provide non fatal errors on missing method calls.

Parameters

string $method

Method to invoke

array $params

Array of params for the method.

Returns

mixed|void

__construct() public

__construct(\Cake\View\View $view, array $config)

Default Constructor

Parameters

\Cake\View\View $view

The View this helper is being attached to.

array $config optional

Configuration settings for the helper.

__debugInfo() public

__debugInfo()

Returns an array that can be used to describe the internal state of this object.

Returns

array

__get() public

__get(string $name)

Lazy loads helpers.

Parameters

string $name

Name of the property being accessed.

Returns

\Cake\View\Helper|null|void

Helper instance if helper with provided name exists

_configDelete() protected

_configDelete(string $key)

Deletes a single config key.

Parameters

string $key

Key to delete.

Throws

Cake\Core\Exception\Exception
if attempting to clobber existing config

_configRead() protected

_configRead(?string $key)

Reads a config key.

Parameters

string|null $key

Key to read.

Returns

mixed

_configWrite() protected

_configWrite(mixed $key, mixed $value, mixed $merge)

Writes a config key.

Parameters

string|array $key

Key to write to.

mixed $value

Value to write.

bool|string $merge optional

True to merge recursively, 'shallow' for simple merge, false to overwrite, defaults to false.

Throws

Cake\Core\Exception\Exception
if attempting to clobber existing config

_confirm() protected

_confirm(string $okCode, string $cancelCode)

Returns a string to be used as onclick handler for confirm dialogs.

Parameters

string $okCode

Code to be executed after user chose 'OK'

string $cancelCode

Code to be executed after user chose 'Cancel'

Returns

string

"onclick" JS code

addClass() public

addClass(array $options, string $class, string $key)

Adds the given class to the element options

Parameters

array $options

Array options/attributes to add a class to

string $class

The class name being added.

string $key optional

the key to use for class. Defaults to 'class'.

Returns

array

Array of options with $key set.

assetTimestamp() public

assetTimestamp(string $path, mixed $timestamp)

Adds a timestamp to a file based resource based on the value of Asset.timestamp in Configure. If Asset.timestamp is true and debug is true, or Asset.timestamp === 'force' a timestamp will be added.

Parameters

string $path

The file path to timestamp, the path must be inside App.wwwRoot in Configure.

bool|string $timestamp optional

If set will overrule the value of Asset.timestamp in Configure.

Returns

string

Path with a timestamp added, or not.

assetUrl() public

assetUrl(string $path, array $options)

Generates URL for given asset file.

Depending on options passed provides full URL with domain name. Also calls Helper::assetTimestamp() to add timestamp to local files.

Options:

  • fullBase Boolean true or a string (e.g. https://example) to return full URL with protocol and domain name.
  • pathPrefix Path prefix for relative URLs
  • ext Asset extension to append
  • plugin False value will prevent parsing path as a plugin
  • timestamp Overrides the value of Asset.timestamp in Configure. Set to false to skip timestamp generation. Set to true to apply timestamps when debug is true. Set to 'force' to always enable timestamping regardless of debug value.

Parameters

string $path

Path string or URL array

array $options optional

Options array.

Returns

string

Generated URL

build() public

build(mixed $url, array $options)

Returns a URL based on provided parameters.

Options:

  • escape: If false, the URL will be returned unescaped, do only use if it is manually escaped afterwards before being displayed.
  • fullBase: If true, the full base URL will be prepended to the result

Parameters

string|array|null $url optional

Either a relative string URL like /products/view/23 or an array of URL parameters. Using an array for URLs will allow you to leverage the reverse routing features of CakePHP.

array $options optional

Array of options.

Returns

string

Full translated URL with base path.

configShallow() public

configShallow(mixed $key, mixed $value)

Merge provided config with existing config. Unlike config() which does a recursive merge for nested keys, this method does a simple merge.

Setting a specific value:

$this->configShallow('key', $value);

Setting a nested value:

$this->configShallow('some.nested.key', $value);

Updating multiple config settings at the same time:

$this->configShallow(['one' => 'value', 'another' => 'value']);

Parameters

string|array $key

The key to set, or a complete array of configs.

mixed|null $value optional

The value to set.

Returns

$this

css() public

css(string $path, array $options)

Generates URL for given CSS file.

Depending on options passed provides full URL with domain name. Also calls Helper::assetTimestamp() to add timestamp to local files.

Parameters

string $path

Path string.

array $options optional

Options array. Possible keys: fullBase Return full URL with domain name pathPrefix Path prefix for relative URLs ext Asset extension to append plugin False value will prevent parsing path as a plugin timestamp Overrides the value of Asset.timestamp in Configure. Set to false to skip timestamp generation. Set to true to apply timestamps when debug is true. Set to 'force' to always enable timestamping regardless of debug value.

Returns

string

Generated URL

getConfig() public

getConfig(?string $key, mixed $default)

Returns the config.

Usage

Reading the whole config:

$this->getConfig();

Reading a specific value:

$this->getConfig('key');

Reading a nested value:

$this->getConfig('some.nested.key');

Reading with default value:

$this->getConfig('some-key', 'default-value');

Parameters

string|null $key optional

The key to get or null for the whole config.

mixed $default optional

The return value when the key does not exist.

Returns

mixed

Configuration data at the named key or null if the key does not exist.

getConfigOrFail() public

getConfigOrFail(string $key)

Returns the config for this specific key.

The config value for this key must exist, it can never be null.

Parameters

string $key

The key to get.

Returns

mixed

Configuration data at the named key

Throws

InvalidArgumentException

getView() public

getView()

Get the view instance this helper is bound to.

Returns

\Cake\View\View

The bound view instance.

image() public

image(string $path, array $options)

Generates URL for given image file.

Depending on options passed provides full URL with domain name. Also calls Helper::assetTimestamp() to add timestamp to local files.

Parameters

string $path

Path string.

array $options optional

Options array. Possible keys: fullBase Return full URL with domain name pathPrefix Path prefix for relative URLs plugin False value will prevent parsing path as a plugin timestamp Overrides the value of Asset.timestamp in Configure. Set to false to skip timestamp generation. Set to true to apply timestamps when debug is true. Set to 'force' to always enable timestamping regardless of debug value.

Returns

string

Generated URL

implementedEvents() public

implementedEvents()

Event listeners.

Returns

array

initialize() public

initialize(array $config)

Constructor hook method.

Implement this method to avoid having to overwrite the constructor and call parent.

Parameters

array $config

The configuration settings provided to this helper.

script() public

script(string $path, array $options)

Generates URL for given javascript file.

Depending on options passed provides full URL with domain name. Also calls Helper::assetTimestamp() to add timestamp to local files.

Parameters

string $path

Path string.

array $options optional

Options array. Possible keys: fullBase Return full URL with domain name pathPrefix Path prefix for relative URLs ext Asset extension to append plugin False value will prevent parsing path as a plugin timestamp Overrides the value of Asset.timestamp in Configure. Set to false to skip timestamp generation. Set to true to apply timestamps when debug is true. Set to 'force' to always enable timestamping regardless of debug value.

Returns

string

Generated URL

setConfig() public

setConfig(mixed $key, mixed $value, mixed $merge)

Sets the config.

Usage

Setting a specific value:

$this->setConfig('key', $value);

Setting a nested value:

$this->setConfig('some.nested.key', $value);

Updating multiple config settings at the same time:

$this->setConfig(['one' => 'value', 'another' => 'value']);

Parameters

string|array $key

The key to set, or a complete array of configs.

mixed|null $value optional

The value to set.

bool $merge optional

Whether to recursively merge or overwrite existing config, defaults to true.

Returns

$this

Throws

Cake\Core\Exception\Exception
When trying to set a key that is invalid.

webroot() public

webroot(string $file)

Checks if a file exists when theme is used, if no file is found default location is returned

Parameters

string $file

The file to create a webroot path to.

Returns

string

Web accessible path to file.

Property Detail

$_View protected

The View instance this helper is attached to

Type

\Cake\View\View

$_config protected

Runtime config

Type

array

$_configInitialized protected

Whether the config property has already been configured with defaults

Type

bool

$_defaultConfig protected

Default config for this helper.

Type

array

$_helperMap protected

A helper lookup table used to lazy load helper objects.

Type

array

$helpers protected

List of helpers used by this helper

Type

array

© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.0/class-Cake.View.Helper.UrlHelper.html