| Viewing file:  FormRendererEngineInterface.php (6.9 KB)      -rw-r--r-- Select action/file-type:
 
  (+) |  (+) |  (+) | Code (+) | Session (+) |  (+) | SDB (+) |  (+) |  (+) |  (+) |  (+) |  (+) | 
 
<?php
 /*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
 
 namespace Symfony\Component\Form;
 
 /**
 * Adapter for rendering form templates with a specific templating engine.
 *
 * @author Bernhard Schussek <bschussek@gmail.com>
 */
 interface FormRendererEngineInterface
 {
 /**
 * Sets the theme(s) to be used for rendering a view and its children.
 *
 * @param FormView $view   The view to assign the theme(s) to.
 * @param mixed    $themes The theme(s). The type of these themes
 *                         is open to the implementation.
 */
 public function setTheme(FormView $view, $themes);
 
 /**
 * Returns the resource for a block name.
 *
 * The resource is first searched in the themes attached to $view, then
 * in the themes of its parent view and so on, until a resource was found.
 *
 * The type of the resource is decided by the implementation. The resource
 * is later passed to {@link renderBlock()} by the rendering algorithm.
 *
 * @param FormView $view      The view for determining the used themes.
 *                            First the themes attached directly to the
 *                            view with {@link setTheme()} are considered,
 *                            then the ones of its parent etc.
 * @param string   $blockName The name of the block to render.
 *
 * @return mixed The renderer resource or false, if none was found.
 */
 public function getResourceForBlockName(FormView $view, $blockName);
 
 /**
 * Returns the resource for a block hierarchy.
 *
 * A block hierarchy is an array which starts with the root of the hierarchy
 * and continues with the child of that root, the child of that child etc.
 * The following is an example for a block hierarchy:
 *
 * <code>
 * form_widget
 * text_widget
 * url_widget
 * </code>
 *
 * In this example, "url_widget" is the most specific block, while the other
 * blocks are its ancestors in the hierarchy.
 *
 * The second parameter $hierarchyLevel determines the level of the hierarchy
 * that should be rendered. For example, if $hierarchyLevel is 2 for the
 * above hierarchy, the engine will first look for the block "url_widget",
 * then, if that does not exist, for the block "text_widget" etc.
 *
 * The type of the resource is decided by the implementation. The resource
 * is later passed to {@link renderBlock()} by the rendering algorithm.
 *
 * @param FormView          $view               The view for determining the
 *                                              used themes. First the themes
 *                                              attached directly to the view
 *                                              with {@link setTheme()} are
 *                                              considered, then the ones of
 *                                              its parent etc.
 * @param array             $blockNameHierarchy The block name hierarchy, with
 *                                              the root block at the beginning.
 * @param integer           $hierarchyLevel     The level in the hierarchy at
 *                                              which to start looking. Level 0
 *                                              indicates the root block, i.e.
 *                                              the first element of
 *                                              $blockNameHierarchy.
 *
 * @return mixed The renderer resource or false, if none was found.
 */
 public function getResourceForBlockNameHierarchy(FormView $view, array $blockNameHierarchy, $hierarchyLevel);
 
 /**
 * Returns the hierarchy level at which a resource can be found.
 *
 * A block hierarchy is an array which starts with the root of the hierarchy
 * and continues with the child of that root, the child of that child etc.
 * The following is an example for a block hierarchy:
 *
 * <code>
 * form_widget
 * text_widget
 * url_widget
 * </code>
 *
 * The second parameter $hierarchyLevel determines the level of the hierarchy
 * that should be rendered.
 *
 * If we call this method with the hierarchy level 2, the engine will first
 * look for a resource for block "url_widget". If such a resource exists,
 * the method returns 2. Otherwise it tries to find a resource for block
 * "text_widget" (at level 1) and, again, returns 1 if a resource was found.
 * The method continues to look for resources until the root level was
 * reached and nothing was found. In this case false is returned.
 *
 * The type of the resource is decided by the implementation. The resource
 * is later passed to {@link renderBlock()} by the rendering algorithm.
 *
 * @param FormView          $view               The view for determining the
 *                                              used themes. First the themes
 *                                              attached directly to the view
 *                                              with {@link setTheme()} are
 *                                              considered, then the ones of
 *                                              its parent etc.
 * @param array             $blockNameHierarchy The block name hierarchy, with
 *                                              the root block at the beginning.
 * @param integer           $hierarchyLevel     The level in the hierarchy at
 *                                              which to start looking. Level 0
 *                                              indicates the root block, i.e.
 *                                              the first element of
 *                                              $blockNameHierarchy.
 *
 * @return integer|Boolean The hierarchy level or false, if no resource was found.
 */
 public function getResourceHierarchyLevel(FormView $view, array $blockNameHierarchy, $hierarchyLevel);
 
 /**
 * Renders a block in the given renderer resource.
 *
 * The resource can be obtained by calling {@link getResourceForBlock()}
 * or {@link getResourceForBlockHierarchy()}. The type of the resource is
 * decided by the implementation.
 *
 * @param FormView          $view      The view to render.
 * @param mixed             $resource  The renderer resource.
 * @param string            $blockName The name of the block to render.
 * @param array             $variables The variables to pass to the template.
 *
 * @return string The HTML markup.
 */
 public function renderBlock(FormView $view, $resource, $blockName, array $variables = array());
 }
 
 |