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

Commit 9724012

Browse files
committed
Merge pull request #217 from thexpand/view-helper-trait
Add helper trait to provide type-hinting for zend-view
2 parents cf0f94e + d209ef6 commit 9724012

File tree

2 files changed

+142
-0
lines changed

2 files changed

+142
-0
lines changed

docs/book/view-helpers.md

+24
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,30 @@ behaviors for you.
88

99
See the section on \[view helpers\](zend.view.helpers) for more information.
1010

11+
> ### IDE auto-completion in templates
12+
>
13+
> The `Zend\Form\View\HelperTrait` trait can be used to provide auto-completion
14+
> for modern IDEs. It defines the aliases of the view helpers in a DocBlock as
15+
> `@method` tags.
16+
>
17+
> #### Usage
18+
>
19+
> In order to allow auto-completion in templates, `$this` variable should be
20+
> type-hinted via a DocBlock at the top of your template. It is recommended that
21+
> you always add the `Zend\View\Renderer\PhpRenderer` as the first type, so that
22+
> the IDE can auto-suggest the default view helpers from `zend-view`. Next,
23+
> chain the `HelperTrait` from `zend-form` with a pipe symbol (a.k.a. vertical
24+
> bar) `|`:
25+
> ```php
26+
> /**
27+
> * @var Zend\View\Renderer\PhpRenderer|Zend\Form\View\HelperTrait $this
28+
> */
29+
> ```
30+
>
31+
> You may chain as many `HelperTrait` traits as you like, depending on view
32+
> helpers from which Zend Framework component you are using and would like to
33+
> provide auto-completion for.
34+
1135
## Standard Helpers
1236
1337
## HTML5 Helpers

src/View/HelperTrait.php

+118
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
<?php
2+
/**
3+
* @see https://github.com/zendframework/zend-form for the canonical source repository
4+
* @copyright Copyright (c) 2018 Zend Technologies USA Inc. (http://www.zend.com)
5+
* @license https://github.com/zendframework/zend-form/blob/master/LICENSE.md New BSD License
6+
*/
7+
8+
namespace Zend\Form\View;
9+
10+
use IntlDateFormatter;
11+
use Zend\Form\ElementInterface;
12+
use Zend\Form\FormInterface;
13+
use Zend\Form\View\Helper\Captcha\Dumb;
14+
use Zend\Form\View\Helper\Captcha\Figlet;
15+
use Zend\Form\View\Helper\Captcha\Image;
16+
use Zend\Form\View\Helper\Captcha\ReCaptcha;
17+
use Zend\Form\View\Helper\Form;
18+
use Zend\Form\View\Helper\FormButton;
19+
use Zend\Form\View\Helper\FormCaptcha;
20+
use Zend\Form\View\Helper\FormCheckbox;
21+
use Zend\Form\View\Helper\FormCollection;
22+
use Zend\Form\View\Helper\FormColor;
23+
use Zend\Form\View\Helper\FormDate;
24+
use Zend\Form\View\Helper\FormDateSelect;
25+
use Zend\Form\View\Helper\FormDateTime;
26+
use Zend\Form\View\Helper\FormDateTimeLocal;
27+
use Zend\Form\View\Helper\FormDateTimeSelect;
28+
use Zend\Form\View\Helper\FormElement;
29+
use Zend\Form\View\Helper\FormElementErrors;
30+
use Zend\Form\View\Helper\FormEmail;
31+
use Zend\Form\View\Helper\FormFile;
32+
use Zend\Form\View\Helper\FormHidden;
33+
use Zend\Form\View\Helper\FormImage;
34+
use Zend\Form\View\Helper\FormInput;
35+
use Zend\Form\View\Helper\FormLabel;
36+
use Zend\Form\View\Helper\FormMonth;
37+
use Zend\Form\View\Helper\FormMonthSelect;
38+
use Zend\Form\View\Helper\FormMultiCheckbox;
39+
use Zend\Form\View\Helper\FormNumber;
40+
use Zend\Form\View\Helper\FormPassword;
41+
use Zend\Form\View\Helper\FormRadio;
42+
use Zend\Form\View\Helper\FormRange;
43+
use Zend\Form\View\Helper\FormReset;
44+
use Zend\Form\View\Helper\FormRow;
45+
use Zend\Form\View\Helper\FormSearch;
46+
use Zend\Form\View\Helper\FormSelect;
47+
use Zend\Form\View\Helper\FormSubmit;
48+
use Zend\Form\View\Helper\FormTel;
49+
use Zend\Form\View\Helper\FormText;
50+
use Zend\Form\View\Helper\FormTextarea;
51+
use Zend\Form\View\Helper\FormTime;
52+
use Zend\Form\View\Helper\FormUrl;
53+
use Zend\Form\View\Helper\FormWeek;
54+
55+
// @codingStandardsIgnoreStart
56+
57+
/**
58+
* Helper trait for auto-completion of code in modern IDEs.
59+
*
60+
* The trait provides convenience methods for view helpers,
61+
* defined by the zend-form component. It is designed to be used
62+
* for type-hinting $this variable inside zend-view templates via doc blocks.
63+
*
64+
* The base class is PhpRenderer, followed by the helper trait from
65+
* the zend-form component. However, multiple helper traits from different
66+
* Zend Framework components can be chained afterwards.
67+
*
68+
* @example @var \Zend\View\Renderer\PhpRenderer|\Zend\Form\View\HelperTrait $this
69+
*
70+
* @method string|Form form(FormInterface|null $form = null)
71+
* @method string|FormButton formButton(ElementInterface|null $element = null, string|null $buttonContent = null)
72+
* @method string|FormCaptcha formCaptcha(ElementInterface|null $element = null)
73+
* @method string|Dumb formCaptchaDumb(ElementInterface|null $element = null)
74+
* @method string|Figlet formCaptchaFiglet(ElementInterface|null $element = null)
75+
* @method string|Image formCaptchaImage(ElementInterface|null $element = null)
76+
* @method string|ReCaptcha formCaptchaRecaptcha(ElementInterface|null $element = null)
77+
* @method string|FormCheckbox formCheckbox(ElementInterface|null $element = null)
78+
* @method string|FormCollection formCollection(ElementInterface|null $element = null, bool $wrap = true)
79+
* @method string|FormColor formColor(ElementInterface|null $element = null)
80+
* @method string|FormDate formDate(ElementInterface|null $element = null)
81+
* @method string|FormDateTime formDateTime(ElementInterface|null $element = null)
82+
* @method string|FormDateTimeLocal formDateTimeLocal(ElementInterface|null $element = null)
83+
* @method string|FormDateTimeSelect formDateTimeSelect(ElementInterface|null $element = null, int $dateType = IntlDateFormatter::LONG, int|null|string $timeType = IntlDateFormatter::LONG, string|null $locale = null)
84+
* @method string|FormDateSelect formDateSelect(ElementInterface $element = null, $dateType = IntlDateFormatter::LONG, $locale = null)
85+
* @method string|FormElement formElement(ElementInterface|null $element = null)
86+
* @method string|FormElementErrors formElementErrors(ElementInterface|null $element = null, array $attributes = [])
87+
* @method string|FormEmail formEmail(ElementInterface|null $element = null)
88+
* @method string|FormFile formFile(ElementInterface|null $element = null)
89+
* @method string formFileApcProgress(ElementInterface|null $element = null)
90+
* @method string formFileSessionProgress(ElementInterface|null $element = null)
91+
* @method string formFileUploadProgress(ElementInterface|null $element = null)
92+
* @method string|FormHidden formHidden(ElementInterface|null $element = null)
93+
* @method string|FormImage formImage(ElementInterface|null $element = null)
94+
* @method string|FormInput formInput(ElementInterface|null $element = null)
95+
* @method string|FormLabel formLabel(ElementInterface|null $element = null, string|null $labelContent = null, string|null $position = null)
96+
* @method string|FormMonth formMonth(ElementInterface|null $element = null)
97+
* @method string|FormMonthSelect formMonthSelect(ElementInterface|null $element = null, int $dateType = IntlDateFormatter::LONG, string|null $locale = null)
98+
* @method string|FormMultiCheckbox formMultiCheckbox(ElementInterface|null $element = null, string|null $labelPosition = null)
99+
* @method string|FormNumber formNumber(ElementInterface|null $element = null)
100+
* @method string|FormPassword formPassword(ElementInterface|null $element = null)
101+
* @method string|FormRadio formRadio(ElementInterface|null $element = null, string|null $labelPosition = null)
102+
* @method string|FormRange formRange(ElementInterface|null $element = null)
103+
* @method string|FormReset formReset(ElementInterface|null $element = null)
104+
* @method string|FormRow formRow(ElementInterface|null $element = null, string|null $labelPosition = null, bool|null $renderErrors = null, string|null $partial = null)
105+
* @method string|FormSearch formSearch(ElementInterface|null $element = null)
106+
* @method string|FormSelect formSelect(ElementInterface|null $element = null)
107+
* @method string|FormSubmit formSubmit(ElementInterface|null $element = null)
108+
* @method string|FormTel formTel(ElementInterface|null $element = null)
109+
* @method string|FormText formText(ElementInterface|null $element = null)
110+
* @method string|FormTextarea formTextarea(ElementInterface|null $element = null)
111+
* @method string|FormTime formTime(ElementInterface|null $element = null)
112+
* @method string|FormUrl formUrl(ElementInterface|null $element = null)
113+
* @method string|FormWeek formWeek(ElementInterface|null $element = null)
114+
*/
115+
trait HelperTrait
116+
{
117+
}
118+
// @codingStandardsIgnoreEnd

0 commit comments

Comments
 (0)