hipnaba/indigo-view

Zend View extension

1.0.0 2018-02-04 11:56 UTC

This package is auto-updated.

Last update: 2024-04-09 01:03:17 UTC


README

Indigo View extends Zend View. It simplifies integrations with non ZF projects and provides a set of generally useful view helpers.

View helpers

Indent

Indents multiline strings. Helps in generating pretty output.

<?php
$content = <<< EOS
Line 1
EOS;

$content1 = <<< EOS
Line 1.1
Line 1.2
EOS;

echo '<div>' . PHP_EOL 
        . ($this->indent($content)) . PHP_EOL
            . ($this->indent($content1, 2)) . PHP_EOL
    . '</div>';

The above example will output...

<div>
    Line 1
        Line 1.1
        Line 1.2
</div>

RenderObject

Tries to render an object. This is used mainly for rendering objects implementing HelperPluginAwareInterface.

If the passed object doesn't implement HelperPluginAwareInterface the helper will try to call the object's __toString() method. If that doesn't exist it will just return the object's class.

Implementing HelperPluginAwareInterface is simple. Just have the implementing object return the wanted helper plugin. The helper plugin can be any callable.

<?php
class RenderableObject implements \Indigo\View\HelperPluginAwareInterface
{
    public function getHelperPlugin()
     {
        return function ($object) {
            return '<h1>' . get_class($object) . '</h1>';
        };
    }
}

$object = new RenderableObject();

echo $this->renderObject($object);

The above example will output

<h1>RenderableObject</h1>

Or we can use the plugin name registered with the plugin manager.

<?php
class RenderableObject implements \Indigo\View\HelperPluginAwareInterface
{
    public function getHelperPlugin() 
    {
        return 'pluginName';
    }
}