From 814422970ff490b07f0b10957422f64792347240 Mon Sep 17 00:00:00 2001 From: Cvetomir Lazarov Date: Sat, 11 Aug 2018 21:11:32 +0300 Subject: [PATCH 01/11] Add helper trait to provide type-hinting for zend-view --- src/HelperTrait.php | 110 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 src/HelperTrait.php diff --git a/src/HelperTrait.php b/src/HelperTrait.php new file mode 100644 index 00000000..6d5bab80 --- /dev/null +++ b/src/HelperTrait.php @@ -0,0 +1,110 @@ + Date: Sat, 11 Aug 2018 21:17:30 +0300 Subject: [PATCH 02/11] Move the helper trait in the View directory Previously it was wrongly placed in the src (main directory) of the component. --- src/{ => View}/HelperTrait.php | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/{ => View}/HelperTrait.php (100%) diff --git a/src/HelperTrait.php b/src/View/HelperTrait.php similarity index 100% rename from src/HelperTrait.php rename to src/View/HelperTrait.php From a12f676f995cb84893534483a7c4917e513e29bb Mon Sep 17 00:00:00 2001 From: Cvetomir Lazarov Date: Sat, 11 Aug 2018 21:30:35 +0300 Subject: [PATCH 03/11] Add comment on the top of the helper trait to ignore coding standards in order to overcome the 120 characters limit The comment has been copied from the PhpRenderer in the zend-view component. --- src/View/HelperTrait.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/View/HelperTrait.php b/src/View/HelperTrait.php index 6d5bab80..5c0e81af 100644 --- a/src/View/HelperTrait.php +++ b/src/View/HelperTrait.php @@ -47,6 +47,7 @@ use Zend\Form\View\Helper\FormUrl; use Zend\Form\View\Helper\FormWeek; +// @codingStandardsIgnoreStart /** * Trait HelperTrait * From 42564739550e2ddb7f20081e5647fa643ad34c4d Mon Sep 17 00:00:00 2001 From: Cvetomir Lazarov Date: Wed, 5 Sep 2018 12:52:14 +0300 Subject: [PATCH 04/11] Add ending doc block annotation for ignoring coding standards --- src/View/HelperTrait.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/View/HelperTrait.php b/src/View/HelperTrait.php index 5c0e81af..93da00d5 100644 --- a/src/View/HelperTrait.php +++ b/src/View/HelperTrait.php @@ -48,6 +48,7 @@ use Zend\Form\View\Helper\FormWeek; // @codingStandardsIgnoreStart + /** * Trait HelperTrait * @@ -109,3 +110,4 @@ trait HelperTrait { } +// @codingStandardsIgnoreEnd From 75412e6e512e1d082ed0cc9ffbb7eb6f30f764cf Mon Sep 17 00:00:00 2001 From: Cvetomir Lazarov Date: Wed, 5 Sep 2018 12:52:46 +0300 Subject: [PATCH 05/11] Add doc block with copyright and license information --- src/View/HelperTrait.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/View/HelperTrait.php b/src/View/HelperTrait.php index 93da00d5..7da9a938 100644 --- a/src/View/HelperTrait.php +++ b/src/View/HelperTrait.php @@ -1,4 +1,9 @@ Date: Wed, 5 Sep 2018 12:53:05 +0300 Subject: [PATCH 06/11] Change comment in doc-block's description to properly address Zend Framework components --- src/View/HelperTrait.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/View/HelperTrait.php b/src/View/HelperTrait.php index 7da9a938..5d7ebca9 100644 --- a/src/View/HelperTrait.php +++ b/src/View/HelperTrait.php @@ -63,7 +63,7 @@ * * The base class is PhpRenderer, followed by the helper trait from * the zend-form component. However, multiple helper traits from different - * Zend components can be chained afterwards. + * Zend Framework components can be chained afterwards. * * @example @var \Zend\View\Renderer\PhpRenderer|\Zend\Form\View\HelperTrait $this * From d8af10635c86528377ffde907f3f8efa9a200711 Mon Sep 17 00:00:00 2001 From: Cvetomir Lazarov Date: Wed, 5 Sep 2018 13:02:20 +0300 Subject: [PATCH 07/11] Add a more descriptive title of the helper trait --- src/View/HelperTrait.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/View/HelperTrait.php b/src/View/HelperTrait.php index 5d7ebca9..da4919b9 100644 --- a/src/View/HelperTrait.php +++ b/src/View/HelperTrait.php @@ -55,7 +55,7 @@ // @codingStandardsIgnoreStart /** - * Trait HelperTrait + * Helper trait for auto-completion of code in modern IDEs. * * The trait provides convenience methods for view helpers, * defined by the zend-form component. It is designed to be used From a75308c117f333e85fd373f677b7c40cf7533a46 Mon Sep 17 00:00:00 2001 From: Cvetomir Lazarov Date: Wed, 5 Sep 2018 15:00:48 +0300 Subject: [PATCH 08/11] Add data types for all @method parameters in the helper trait --- src/View/HelperTrait.php | 86 ++++++++++++++++++++-------------------- 1 file changed, 43 insertions(+), 43 deletions(-) diff --git a/src/View/HelperTrait.php b/src/View/HelperTrait.php index da4919b9..a925a22a 100644 --- a/src/View/HelperTrait.php +++ b/src/View/HelperTrait.php @@ -67,50 +67,50 @@ * * @example @var \Zend\View\Renderer\PhpRenderer|\Zend\Form\View\HelperTrait $this * - * @method string|Form form(FormInterface $form = null) - * @method string|FormButton formButton(ElementInterface $element = null, $buttonContent = null) - * @method string|FormCaptcha formCaptcha(ElementInterface $element = null) - * @method string|Dumb formCaptchaDumb(ElementInterface $element = null) - * @method string|Figlet formCaptchaFiglet(ElementInterface $element = null) - * @method string|Image formCaptchaImage(ElementInterface $element = null) - * @method string|ReCaptcha formCaptchaRecaptcha(ElementInterface $element = null) - * @method string|FormCheckbox formCheckbox(ElementInterface $element = null) - * @method string|FormCollection formCollection(ElementInterface $element = null, $wrap = true) - * @method string|FormColor formColor(ElementInterface $element = null) - * @method string|FormDate formDate(ElementInterface $element = null) - * @method string|FormDateTime formDateTime(ElementInterface $element = null) - * @method string|FormDateTimeLocal formDateTimeLocal(ElementInterface $element = null) - * @method string|FormDateTimeSelect formDateTimeSelect(ElementInterface $element = null, $dateType = IntlDateFormatter::LONG, $timeType = IntlDateFormatter::LONG, $locale = null) + * @method string|Form form(FormInterface|null $form = null) + * @method string|FormButton formButton(ElementInterface|null $element = null, string|null $buttonContent = null) + * @method string|FormCaptcha formCaptcha(ElementInterface|null $element = null) + * @method string|Dumb formCaptchaDumb(ElementInterface|null $element = null) + * @method string|Figlet formCaptchaFiglet(ElementInterface|null $element = null) + * @method string|Image formCaptchaImage(ElementInterface|null $element = null) + * @method string|ReCaptcha formCaptchaRecaptcha(ElementInterface|null $element = null) + * @method string|FormCheckbox formCheckbox(ElementInterface|null $element = null) + * @method string|FormCollection formCollection(ElementInterface|null $element = null, bool $wrap = true) + * @method string|FormColor formColor(ElementInterface|null $element = null) + * @method string|FormDate formDate(ElementInterface|null $element = null) + * @method string|FormDateTime formDateTime(ElementInterface|null $element = null) + * @method string|FormDateTimeLocal formDateTimeLocal(ElementInterface|null $element = null) + * @method string|FormDateTimeSelect formDateTimeSelect(ElementInterface|null $element = null, int $dateType = IntlDateFormatter::LONG, int|null|string $timeType = IntlDateFormatter::LONG, string|null $locale = null) * @method string|FormDateSelect formDateSelect(ElementInterface $element = null, $dateType = IntlDateFormatter::LONG, $locale = null) - * @method string|FormElement formElement(ElementInterface $element = null) - * @method string|FormElementErrors formElementErrors(ElementInterface $element = null, array $attributes = []) - * @method string|FormEmail formEmail(ElementInterface $element = null) - * @method string|FormFile formFile(ElementInterface $element = null) - * @method string formFileApcProgress(ElementInterface $element = null) - * @method string formFileSessionProgress(ElementInterface $element = null) - * @method string formFileUploadProgress(ElementInterface $element = null) - * @method string|FormHidden formHidden(ElementInterface $element = null) - * @method string|FormImage formImage(ElementInterface $element = null) - * @method string|FormInput formInput(ElementInterface $element = null) - * @method string|FormLabel formLabel(ElementInterface $element = null, $labelContent = null, $position = null) - * @method string|FormMonth formMonth(ElementInterface $element = null) - * @method string|FormMonthSelect formMonthSelect(ElementInterface $element = null, $dateType = IntlDateFormatter::LONG, $locale = null) - * @method string|FormMultiCheckbox formMultiCheckbox(ElementInterface $element = null, $labelPosition = null) - * @method string|FormNumber formNumber(ElementInterface $element = null) - * @method string|FormPassword formPassword(ElementInterface $element = null) - * @method string|FormRadio formRadio(ElementInterface $element = null, $labelPosition = null) - * @method string|FormRange formRange(ElementInterface $element = null) - * @method string|FormReset formReset(ElementInterface $element = null) - * @method string|FormRow formRow(ElementInterface $element = null, $labelPosition = null, $renderErrors = null, $partial = null) - * @method string|FormSearch formSearch(ElementInterface $element = null) - * @method string|FormSelect formSelect(ElementInterface $element = null) - * @method string|FormSubmit formSubmit(ElementInterface $element = null) - * @method string|FormTel formTel(ElementInterface $element = null) - * @method string|FormText formText(ElementInterface $element = null) - * @method string|FormTextarea formTextarea(ElementInterface $element = null) - * @method string|FormTime formTime(ElementInterface $element = null) - * @method string|FormUrl formUrl(ElementInterface $element = null) - * @method string|FormWeek formWeek(ElementInterface $element = null) + * @method string|FormElement formElement(ElementInterface|null $element = null) + * @method string|FormElementErrors formElementErrors(ElementInterface|null $element = null, array $attributes = []) + * @method string|FormEmail formEmail(ElementInterface|null $element = null) + * @method string|FormFile formFile(ElementInterface|null $element = null) + * @method string formFileApcProgress(ElementInterface|null $element = null) + * @method string formFileSessionProgress(ElementInterface|null $element = null) + * @method string formFileUploadProgress(ElementInterface|null $element = null) + * @method string|FormHidden formHidden(ElementInterface|null $element = null) + * @method string|FormImage formImage(ElementInterface|null $element = null) + * @method string|FormInput formInput(ElementInterface|null $element = null) + * @method string|FormLabel formLabel(ElementInterface|null $element = null, string|null $labelContent = null, string|null $position = null) + * @method string|FormMonth formMonth(ElementInterface|null $element = null) + * @method string|FormMonthSelect formMonthSelect(ElementInterface|null $element = null, int $dateType = IntlDateFormatter::LONG, string|null $locale = null) + * @method string|FormMultiCheckbox formMultiCheckbox(ElementInterface|null $element = null, string|null $labelPosition = null) + * @method string|FormNumber formNumber(ElementInterface|null $element = null) + * @method string|FormPassword formPassword(ElementInterface|null $element = null) + * @method string|FormRadio formRadio(ElementInterface|null $element = null, string|null $labelPosition = null) + * @method string|FormRange formRange(ElementInterface|null $element = null) + * @method string|FormReset formReset(ElementInterface|null $element = null) + * @method string|FormRow formRow(ElementInterface|null $element = null, string|null $labelPosition = null, bool|null $renderErrors = null, string|null $partial = null) + * @method string|FormSearch formSearch(ElementInterface|null $element = null) + * @method string|FormSelect formSelect(ElementInterface|null $element = null) + * @method string|FormSubmit formSubmit(ElementInterface|null $element = null) + * @method string|FormTel formTel(ElementInterface|null $element = null) + * @method string|FormText formText(ElementInterface|null $element = null) + * @method string|FormTextarea formTextarea(ElementInterface|null $element = null) + * @method string|FormTime formTime(ElementInterface|null $element = null) + * @method string|FormUrl formUrl(ElementInterface|null $element = null) + * @method string|FormWeek formWeek(ElementInterface|null $element = null) */ trait HelperTrait { From e633986fbec9fca19fe97c1485d1d5a57d561880 Mon Sep 17 00:00:00 2001 From: Cvetomir Lazarov Date: Thu, 6 Sep 2018 01:51:44 +0300 Subject: [PATCH 09/11] Replace the year range with the current year in the copyright doc-block --- src/View/HelperTrait.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/View/HelperTrait.php b/src/View/HelperTrait.php index a925a22a..f7069279 100644 --- a/src/View/HelperTrait.php +++ b/src/View/HelperTrait.php @@ -1,7 +1,7 @@ Date: Wed, 12 Sep 2018 18:26:52 +0300 Subject: [PATCH 10/11] Add documentation for HelperTrait for IDE auto-completion --- docs/book/view-helpers.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/docs/book/view-helpers.md b/docs/book/view-helpers.md index b7e1545f..d4d75ec5 100644 --- a/docs/book/view-helpers.md +++ b/docs/book/view-helpers.md @@ -8,6 +8,30 @@ behaviors for you. See the section on \[view helpers\](zend.view.helpers) for more information. +> ### IDE auto-completion in templates +> +> The `Zend\Form\View\Helper\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-form` with a pipe symbol (a.k.a. vertical +> bar) `|`: +> ```php +> /** +> * @var Zend\View\Renderer\PhpRenderer|Zend\Form\View\Helper\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. + ## Standard Helpers ## HTML5 Helpers From d209ef67cd07f307d16aa974811b6a85cc1040c2 Mon Sep 17 00:00:00 2001 From: Cvetomir Lazarov Date: Wed, 12 Sep 2018 21:32:28 +0300 Subject: [PATCH 11/11] Fix wrong namespace in docs for HelperTrait and re-align code example --- docs/book/view-helpers.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/book/view-helpers.md b/docs/book/view-helpers.md index d4d75ec5..df6edf95 100644 --- a/docs/book/view-helpers.md +++ b/docs/book/view-helpers.md @@ -10,9 +10,9 @@ See the section on \[view helpers\](zend.view.helpers) for more information. > ### IDE auto-completion in templates > -> The `Zend\Form\View\Helper\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. +> The `Zend\Form\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 > @@ -24,8 +24,8 @@ See the section on \[view helpers\](zend.view.helpers) for more information. > bar) `|`: > ```php > /** -> * @var Zend\View\Renderer\PhpRenderer|Zend\Form\View\Helper\HelperTrait $this -> */ +> * @var Zend\View\Renderer\PhpRenderer|Zend\Form\View\HelperTrait $this +> */ > ``` > > You may chain as many `HelperTrait` traits as you like, depending on view