Skip to content
This repository has been archived by the owner on Jan 30, 2020. It is now read-only.

Add helper trait to provide type-hinting for zend-view #102

Merged
merged 12 commits into from
Nov 18, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions docs/book/view-helpers.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,30 @@ displaying translated content.
See the [zend-view helpers documentation](http://framework.zend.com/manual/current/en/modules/zend.view.helpers.html#zend-view-helpers)
for more information.

> ### IDE auto-completion in templates
>
> The `Zend\I18n\View\HelperTrait` trait can be used to provide auto-completion
> for modern IDEs. It defines the aliases of the view helpers in a DocBlock as
> `@method` tags.
>
> #### Usage
>
> In order to allow auto-completion in templates, `$this` variable should be
> type-hinted via a DocBlock at the top of your template. It is recommended that
> you always add the `Zend\View\Renderer\PhpRenderer` as the first type, so that
> the IDE can auto-suggest the default view helpers from `zend-view`. Next,
> chain the `HelperTrait` from `zend-i18n` with a pipe symbol (a.k.a. vertical
> bar) `|`:
> ```php
> /**
> * @var Zend\View\Renderer\PhpRenderer|Zend\I18n\View\HelperTrait $this
> */
> ```
>
> You may chain as many `HelperTrait` traits as you like, depending on view
> helpers from which Zend Framework component you are using and would like to
> provide auto-completion for.

## CurrencyFormat Helper

The `CurrencyFormat` view helper can be used to simplify rendering of localized
Expand Down
37 changes: 37 additions & 0 deletions src/View/HelperTrait.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?php
/**
* @see https://github.com/zendframework/zend-i18n for the canonical source repository
* @copyright Copyright (c) 2018 Zend Technologies USA Inc. (http://www.zend.com)
* @license https://github.com/zendframework/zend-i18n/blob/master/LICENSE.md New BSD License
*/

namespace Zend\I18n\View;

use IntlDateFormatter;

// @codingStandardsIgnoreStart
thexpand marked this conversation as resolved.
Show resolved Hide resolved

/**
* Helper trait for auto-completion of code in modern IDEs.
*
* The trait provides convenience methods for view helpers,
* defined by the zend-i18n component. It is designed to be used
* for type-hinting $this variable inside zend-view templates via doc blocks.
*
* The base class is PhpRenderer, followed by the helper trait from
* the zend-i18n component. However, multiple helper traits from different
* Zend Framework components can be chained afterwards.
*
* @example @var \Zend\View\Renderer\PhpRenderer|\Zend\I18n\View\HelperTrait $this
*
* @method string currencyFormat(float $number, string|null $currencyCode = null, bool|null $showDecimals = null, string|null $locale = null, string|null $pattern = null)
* @method string dateFormat(\DateTime|int|array $date, int $dateType = IntlDateFormatter::NONE, int $timeType = IntlDateFormatter::NONE, string|null $locale = null, string|null $pattern = null)
* @method string numberFormat(int|float $number, int|null $formatStyle = null, int|null $formatType = null, string|null $locale = null, int|null $decimals = null, array|null $textAttributes = null)
* @method string plural(array|string $strings, int $number)
* @method string translate(string $message, string|null $textDomain = null, string|null $locale = null)
* @method string translatePlural(string $singular, string $plural, int $number, string|null $textDomain = null, string|null $locale = null)
*/
trait HelperTrait
{
}
// @codingStandardsIgnoreEnd