extends \Phalcon\Tag

Hi everyone!

First of all thanks for this great framework!!!

I'm trying to extends \Phalcon\Tag class, to override the getValue() method. I want to get value from the POST array for the form fields with names like array (e.g. user[email]).

But when I simply extends the class:

namespace ...;

class Tag extends \Phalcon\Tag {

}

stopped working the setDefault() method :( Also desired function getValue() do not overridden.

As I understand it this is due with static methods and properties of the class. But how to solve this problem, I don't know. Help advice, please!

plz paste more for see you override of setDefault



651

@Дмитрий Пацура

Приветствую, земляк :) Я не переопределяю setDefault, я просто даже создаю пустой класс, расширяющий \Phalcon\Tag, и вижу, что поля формы не заполняются значениями по умолчанию. Как только убираю переопределение сервиса tag - всё становится в порядке. А при переопределении метода getValue - вижу, что он вообще не вызывается из моего класса. А другие функции, например, linkTo - работают.

=====

Sorry, but I will rewrite my answer in English later.

@devate Привет привет ^_^. Похоже на баг, я думаю это надо в баг трекере на github добавить с примерами минимального окружения что бы понять что там не так. Я переопрделал на свой тег но формы не юзал так как считаю их убогими дико )



651

Действительно похоже на баг... Я создал 2 простых класса с подобным функционалом, чтобы убедиться, что это не прикол самого php - всё работает успешно. Ну что ж - создал issue:

https://github.com/phalcon/cphalcon/issues/2402

Спасибо за совет :) Надеюсь, ответят и помогут.

@devate Отписал на трекере там баг не в Теге а в формах где то отпиши и я помогу тебе :)

@devate https://github.com/phalcon/cphalcon/blob/1.3.2/ext/forms/element.c#L737 Надо с DI брать щас если перед сном успею фикс накидаю :)



651

Ответил. Обрати внимание, что я 3 раза вызываю setDefault. И получается так, что остаётся присваивание только последнего, чего быть не должно. В массиве $_displayValues должны быть все 3 значения.

edited May '14

там жуть по пути https://github.com/phalcon/cphalcon/pull/2418 phpunit mongo поченил и щас с php 5.6 поборюсь там походу в php ошибка ((



651

Привет!

Видел твой ответ в issue, спасибо :) Но я пока не проверял - работаю под виндой, компилить phalcon для меня целая проблема, лень студию качать и ставить :) Надо будет под линуксом скомпиллировать и проверить. Пока один вопрос: ты занимался конкретно проблемой setDefault, да? Я просто изначально совсем другую проблему описывал, а баг с setDefault заметил позже :) Первоначально хотел и хочу переопределить функцию getValue, что не получалось - она тупо не вызывается. Сейчас ничего не поменялось?



651
edited May '14

Вообще, конечно, было бы круто научить phalcon выуживать из массива POST значения для полей формы, имеющих в названии стиль массивов. В этом ведь ничего сложного нет, я написал себе для этого небольшой код, который и хотел засунуть в getValue, но вот, как-то не срослось :(

Привет

https://github.com/phalcon/cphalcon/issues/2402 Все что тут описано поставь на локаль ветку и проверь

Видел твой ответ в issue, спасибо :) Но я пока не проверял - работаю под виндой, компилить phalcon для меня целая проблема, лень студию качать и ставить :) Надо будет под линуксом скомпиллировать и проверить. Пока один вопрос: ты занимался конкретно проблемой setDefault, да? Я просто изначально совсем другую проблему описывал, а баг с setDefault заметил позже :) Первоначально хотел и хочу переопределить функцию getValue, что не получалось - она тупо не вызывается. Сейчас ничего не поменялось?

Создаешь отдельный issue с примером кода что не работает с префиксом [BUG]

Вообще, конечно, было бы круто научить phalcon выуживать из массива POST значения для полей формы, имеющих в названии стиль массивов. В этом ведь ничего сложного нет, я написал себе для этого небольшой код, который и хотел заснуть в getValue, но вот, как-то не срослось :(

Тут issue с [NFR] и пишешь как должно это браться и как вообще происходить Можешь пример кода на php