123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- <?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, bool $useDefaultThemes = true);
- /**
- * 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.
- *
- * @return mixed the renderer resource or false, if none was found
- */
- public function getResourceForBlockName(FormView $view, string $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:
- *
- * form_widget
- * text_widget
- * url_widget
- *
- * 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 string[] $blockNameHierarchy The block name hierarchy, with the root block
- * at the beginning
- * @param int $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, int $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:
- *
- * form_widget
- * text_widget
- * url_widget
- *
- * 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 string[] $blockNameHierarchy The block name hierarchy, with the root block
- * at the beginning
- * @param int $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 int|bool The hierarchy level or false, if no resource was found
- */
- public function getResourceHierarchyLevel(FormView $view, array $blockNameHierarchy, int $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 array $variables The variables to pass to the template
- *
- * @return string The HTML markup
- */
- public function renderBlock(FormView $view, $resource, string $blockName, array $variables = []);
- }
|