Refactor HelpersSet class

This commit is contained in:
Dmitriy Simushev 2014-09-18 09:42:50 +00:00
parent 911487871d
commit 957e67686a
3 changed files with 60 additions and 70 deletions

View File

@ -0,0 +1,58 @@
<?php
/*
* This file is a part of Mibew Messenger.
*
* Copyright 2005-2014 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
namespace Mibew\Handlebars;
use Handlebars\Helpers as BaseHelpers;
/**
* Handlebars helpers collection.
*
* This class differs from \Handlebars\Helpers in default helpers set.
*/
class Helpers extends BaseHelpers
{
/**
* {@inheritdoc}
*/
protected function addDefaultHelpers()
{
parent::addDefaultHelpers();
$blocks = new BlockStorage();
$this->add('l10n', new Helper\L10nHelper());
$this->add('extends', new Helper\ExtendsHelper());
$this->add('block', new Helper\BlockHelper($blocks));
$this->add('override', new Helper\OverrideHelper($blocks));
$this->add('ifOverridden', new Helper\IfOverriddenHelper($blocks));
$this->add('unlessOverridden', new Helper\UnlessOverriddenHelper($blocks));
$this->add('ifEqual', new Helper\IfEqualHelper());
$this->add('ifAny', new Helper\IfAnyHelper());
$this->add('ifEven', new Helper\IfEvenHelper());
$this->add('ifOdd', new Helper\IfOddHelper());
$this->add('generatePagination', new Helper\GeneratePaginationHelper());
$this->add('jsString', new Helper\JsStringHelper());
$this->add('repeat', new Helper\RepeatHelper());
$this->add('replace', new Helper\ReplaceHelper());
$this->add('formatDate', new Helper\FormatDateHelper());
$this->add('formatDateDiff', new Helper\FormatDateDiffHelper());
$this->add('cutString', new Helper\CutStringHelper());
$this->add('csrfTokenInput', new Helper\CsrfTokenInputHelper());
}
}

View File

@ -1,68 +0,0 @@
<?php
/*
* This file is a part of Mibew Messenger.
*
* Copyright 2005-2014 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
namespace Mibew\Handlebars;
/**
* Represents a set of default helpers for server side templates.
*/
class HelpersSet
{
/**
* Contains a list of helpers.
*
* @var array()
*/
protected static $helpers = null;
/**
* Returns a set of handlebars helpers.
*
* @return array Helpers list that can be passed to
* \Handlebars\Helpers::__construct();
*/
public static function getHelpers()
{
if (!self::$helpers) {
$blocks = new BlockStorage();
self::$helpers = array(
'l10n' => (new Helper\L10nHelper()),
'extends' => (new Helper\ExtendsHelper()),
'block' => (new Helper\BlockHelper($blocks)),
'override' => (new Helper\OverrideHelper($blocks)),
'ifOverridden' => (new Helper\IfOverriddenHelper($blocks)),
'unlessOverridden' => (new Helper\UnlessOverriddenHelper($blocks)),
'ifEqual' => (new Helper\IfEqualHelper()),
'ifAny' => (new Helper\IfAnyHelper()),
'ifEven' => (new Helper\IfEvenHelper()),
'ifOdd' => (new Helper\IfOddHelper()),
'generatePagination' => (new Helper\GeneratePaginationHelper()),
'jsString' => (new Helper\JsStringHelper()),
'repeat' => (new Helper\RepeatHelper()),
'replace' => (new Helper\ReplaceHelper()),
'formatDate' => (new Helper\FormatDateHelper()),
'formatDateDiff' => (new Helper\FormatDateDiffHelper()),
'cutString' => (new Helper\CutStringHelper()),
'csrfTokenInput' => (new Helper\CsrfTokenInputHelper()),
);
}
return self::$helpers;
}
}

View File

@ -20,7 +20,7 @@
namespace Mibew\Style;
use Handlebars\Handlebars as HandlebarsEngine;
use Mibew\Handlebars\HelpersSet;
use Mibew\Handlebars\Helpers;
use Mibew\Handlebars\HandlebarsAwareInterface;
/**
@ -48,7 +48,7 @@ abstract class AbstractHandlebarsPoweredStyle extends AbstractStyle implements H
$this->templateEngine = new \Handlebars\Handlebars(array(
'loader' => $templates_loader,
'partials_loader' => $templates_loader,
'helpers' => new \Handlebars\Helpers(HelpersSet::getHelpers())
'helpers' => new Helpers(),
));
// Use custom function to escape strings