We have moved our forum to GitHub Discussions. For questions about Phalcon v3/v4/v5 you can visit here and for Phalcon v6 here.

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



1.4k

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

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

=====

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

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



1.4k

Действительно похоже на баг... Я создал 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 брать щас если перед сном успею фикс накидаю :)



1.4k

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

edited May '14

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



1.4k

Привет!

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



1.4k
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