Class ViewBlock

ViewBlock implements the concept of Blocks or Slots in the View layer.

Slots or blocks are combined with extending views and layouts to afford slots of content that are present in a layout or parent view, but are defined by the child view or elements used in the view.

Namespace: Cake\View

Constants summary

  • string
    APPEND
    'append'
  • string
    OVERRIDE
    'override'
  • string
    PREPEND
    'prepend'

Properties summary

  • $_active protected
    string[]

    The active blocks being captured.

  • $_blocks protected
    string[]

    Block content. An array of blocks indexed by name.

  • bool

    Should the currently captured content be discarded on ViewBlock::end()

Method Summary

  • active() public

    Get the name of the currently open block.

  • concat() public

    Concat content to an existing or new block.

  • end() public

    End a capturing block. The compliment to ViewBlock::start()

  • exists() public

    Check if a block exists

  • get() public

    Get the content for a block.

  • keys() public

    Get the names of all the existing blocks.

  • set() public

    Set the content for a block. This will overwrite any existing content.

  • start() public

    Start capturing output for a 'block'

  • unclosed() public

    Get the unclosed/active blocks. Key is name, value is mode.

Method Detail

active() public

active()

Get the name of the currently open block.

Returns

string|null

Either null or the name of the last open block.

concat() public

concat(string $name, mixed $value, mixed $mode)

Concat content to an existing or new block.

Concating to a new block will create the block.

Calling concat() without a value will create a new capturing block that needs to be finished with View::end(). The content of the new capturing context will be added to the existing block context.

Parameters

string $name

Name of the block

mixed $value optional

The content for the block. Value will be type cast to string.

string $mode optional

If ViewBlock::APPEND content will be appended to existing content. If ViewBlock::PREPEND it will be prepended.

end() public

end()

End a capturing block. The compliment to ViewBlock::start()

See Also

\Cake\View\ViewBlock::start()

exists() public

exists(string $name)

Check if a block exists

Parameters

string $name

Name of the block

Returns

bool

get() public

get(string $name, string $default)

Get the content for a block.

Parameters

string $name

Name of the block

string $default optional

Default string

Returns

string

The block content or $default if the block does not exist.

keys() public

keys()

Get the names of all the existing blocks.

Returns

string[]

An array containing the blocks.

set() public

set(string $name, mixed $value)

Set the content for a block. This will overwrite any existing content.

Parameters

string $name

Name of the block

mixed $value

The content for the block. Value will be type cast to string.

start() public

start(string $name, string $mode)

Start capturing output for a 'block'

Blocks allow you to create slots or blocks of dynamic content in the layout. view files can implement some or all of a layout's slots.

You can end capturing blocks using View::end(). Blocks can be output using View::get();

Parameters

string $name

The name of the block to capture for.

string $mode optional

If ViewBlock::OVERRIDE existing content will be overridden by new content. If ViewBlock::APPEND content will be appended to existing content. If ViewBlock::PREPEND it will be prepended.

Throws

Cake\Core\Exception\Exception
When starting a block twice

unclosed() public

unclosed()

Get the unclosed/active blocks. Key is name, value is mode.

Returns

string[]

An array of unclosed blocks.

Property Detail

$_active protected

The active blocks being captured.

Type

string[]

$_blocks protected

Block content. An array of blocks indexed by name.

Type

string[]

$_discardActiveBufferOnEnd protected

Should the currently captured content be discarded on ViewBlock::end()

Type

bool

© 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.1/class-Cake.View.ViewBlock.html