protected function cell($cell, array $data = [], array $options = [])
    {
        $parts = explode('::', $cell);

        if (count($parts) === 2) {
            list($pluginAndCell, $action) = [$parts[0], $parts[1]];
        } else {
            list($pluginAndCell, $action) = [$parts[0], 'display'];
        }

        list($plugin) = pluginSplit($pluginAndCell);
        $className = App::className($pluginAndCell, 'View/Cell', 'Cell');

        if (!$className) {
            throw new MissingCellException(['className' => $pluginAndCell . 'Cell']);
        }

        if (!empty($data)) {
            $data = array_values($data);
        }
        $options = ['action' => $action, 'args' => $data] + $options;
        $cell = $this->_createCell($className, $action, $plugin, $options);

        return $cell;
    }
protected function cell($cell, array $data = [], array $options = [])
    {
        $parts = explode('::', $cell);

        if (count($parts) === 2) {
            list($pluginAndCell, $action) = [$parts[0], $parts[1]];
        } else {
            list($pluginAndCell, $action) = [$parts[0], 'display'];
        }

        list($plugin) = pluginSplit($pluginAndCell);
        $className = App::className($pluginAndCell, 'View/Cell', 'Cell');

        if (!$className) {
            throw new MissingCellException(['className' => $pluginAndCell . 'Cell']);
        }

        if (!empty($data)) {
            $data = array_values($data);
        }
        $options = ['action' => $action, 'args' => $data] + $options;
        $cell = $this->_createCell($className, $action, $plugin, $options);

        return $cell;
    }
protected function cell ( $ cell , array $ data = [ ] , array $ options = [ ] ) { $ parts = explode ( '::' , $ cell ) ; if ( count ( $ parts ) === 2 ) { list ( $ pluginAndCell , $ action ) = [ $ parts [ 0 ] , $ parts [ 1 ] ] ; } else { list ( $ pluginAndCell , $ action ) = [ $ parts [ 0 ] , 'display' ] ; } list ( $ plugin ) = pluginSplit ( $ pluginAndCell ) ; $ className = App :: className ( $ pluginAndCell , 'View/Cell' , 'Cell' ) ; if ( ! $ className ) { throw new MissingCellException ( [ 'className' => $ pluginAndCell . 'Cell' ] ) ; } if ( ! empty ( $ data ) ) { $ data = array_values ( $ data ) ; } $ options = [ 'action' => $ action , 'args' => $ data ] + $ options ; $ cell = $ this -> _createCell ( $ className , $ action , $ plugin , $ options ) ; return $ cell ; }
Renders the given cell.

Example:

```
// Taxonomy\View\Cell\TagCloudCell::smallList()
$cell = $this->cell('Taxonomy.TagCloud::smallList', ['limit' => 10]);

// App\View\Cell\TagCloudCell::smallList()
$cell = $this->cell('TagCloud::smallList', ['limit' => 10]);
```

The `display` action will be used by default when no action is provided:

```
// Taxonomy\View\Cell\TagCloudCell::display()
$cell = $this->cell('Taxonomy.TagCloud');
```

Cells are not rendered until they are echoed.

@param string $cell You must indicate cell name, and optionally a cell action. e.g.: `TagCloud::smallList`
will invoke `View\Cell\TagCloudCell::smallList()`, `display` action will be invoked by default when none is provided.
@param array $data Additional arguments for cell method. e.g.:
`cell('TagCloud::smallList', ['a1' => 'v1', 'a2' => 'v2'])` maps to `View\Cell\TagCloud::smallList(v1, v2)`
@param array $options Options for Cell's constructor
@return \Cake\View\Cell The cell instance
@throws \Cake\View\Exception\MissingCellException If Cell class was not found.
@throws \BadMethodCallException If Cell class does not specified cell action.
Renders the given cell .