Какой паттерн лучше использовать, когда идет обработка разных форм

Petja

Новичок
Petja, ну идея понятная, хотя я вижу только половину функциональности, твой класс работает только после отправки данных, но при этом содержит данные, которые интересны при создании формы - имя поля, а возможно и тип, и размер и максимальная длина и опции для селекта и и и). а основная проблема "не возможности использования данных обьекта при рендеринге формы" в том, что процесоор уже на этапе создания обьекта выполняет всю цепочку комманд.
Да, форма уже есть. Здесь мне надо только обработать ее, и если ошибки - то подписать и пометить поля с ошибками + заполнить поля отправленными значениями.

А такой вопрос - я вот храню используемые данные в одном массиве - чтобы было понятнее и удобнее всем управлять. Точно не знаю, но может быть я это взял из JS объектов с настройками.

Так делать нормально?

Не в курсе в Yii есть уже вот такие подобные вещи для обработки форм? Чтобы принять данные, проверить и если просто отправлена - то изменить форму, а если отправлена через ajax - то отдать объект с правками?
 

Petja

Новичок
И еще не подскажете, это паттерн декоратор? Или тут вообще паттернов нет?
 

WMix

герр M:)ller
Партнер клуба
+ заполнить поля отправленными значениями.
те. всетаки она нужна при рендеринге. тут вопрос, а чем алгоритм обрисовки начальной формы отличен от обрисовки обработаной? почемуб не использовать имена полей из обьекта форма в html-input полях (удобно будет изменять).
попробуй перенести цепочку комманд из конструктора формы в контроллер, и у тебя появится возможность использовать обьект при обрисовке формы.
еще раз о паттернах. это все очень абстрактно (выкинь из головы хтмл думай только о обьектах). декоратором я назову любой класс (метод/функцию) который примет масив, добавит несколько значений (или лучше вложит вход в капсулу ) и вернет декорированный массив обратно.
Так делать нормально?
да
 
Последнее редактирование:

Petja

Новичок
Благодарю!
те. всетаки она нужна при рендеринге. тут вопрос, а чем алгоритм обрисовки начальной формы отличен от обрисовки обработаной? почемуб не использовать имена полей из обьекта форма в html-input полях (удобно будет изменять).
Сейчас суть не в этом, форма есть уже, я только буду вносить в нее изменения. Она есть в виде html, выносить ее в php - не хочу, да и фиг с ней пока... И так затормозил я с этой формой, когда захотел попробовать сделать красиво...
попробуй перенести цепочку комманд из конструктора формы в контроллер
Конструктор - это __construct(); а что есть контроллер? Откуда это понятие?
 

WMix

герр M:)ller
Партнер клуба
контроллер ну не важно пока, туда где ты напишешь new recallForm();
Она есть в виде html, выносить ее в php - не хочу
хм, зачем ты называешь все формой тогда. назови пост-реквестом
да и не понятно как ты будешь вставлять value в хтмл
 

Petja

Новичок
контроллер ну не важно пока, туда где ты напишешь new recallForm();

хм, зачем ты называешь все формой тогда. назови пост-реквестом
да и не понятно как ты будешь вставлять value в хтмл
Я это делаю все внутри CMF одной, если бы я тут приводил ее методы, то запутал бы.
Форма в основном будет ajax, а простая отправка - просто для красоты будет поддерживаться. Заполняться будет через JS
Сервер отдаст данные в json, оттуда уже пойдет расставление на странице.

Если же запрос был не ajax - то заменит плейсхолдеры на странице.
Эта форма, ее html с плейсхолдерами доступна мне в любой точке кода.

form назвал - чтобы было видно что это болванка для процессоров форм или как это назвать...
Кстати, контроллер, процессор в этой системе с которой я работаю - имеют свое определение...
Может в других местах они по другому называются.
 

WMix

герр M:)ller
Партнер клуба
те параноики с отключеным яваскриптом не ваши клиенты? скажи своему начальству о твоем решении!
 

Petja

Новичок
те параноики с отключенным яваскриптом не ваши клиенты? скажи своему начальству о твоем решении!
Это посадочная страница для тех, кто хочет купить лифт. И форма внизу находится, без JS все равно никак не отправить так, чтоб потом отмотал вниз к форме с ответами.
Но у меня есть поддержка без JS, только все равно не отматывает.
У нас разговор заходит куда-то не в ту степь. Давайте тогда лучше вообще не говорить, чем спорить. Кстати об начальстве, я работаю только с нормальными людьми, если вдруг мне попадется начальство, которое меня не устроит, это начальство пойдет куда подальше, в лучшем случае.

Кстати, декоратор, как я помню, это не работа с массивами, а как раз - прототип в виде абстрактного класса и наследуемые вариации его.

И еще я считаю, что если людей меньше процента, которые работают без js или из старых браузеров, то лучше потратить ресурсы на нормальных людей, чем на этих мутных типков, с которыми уже с первого момента начинаются проблемы, что же будет дальше... :)))
 

WMix

герр M:)ller
Партнер клуба
я знаю множество людей которые отключают js. (дело не в старых браузерах, а в безопасности) послушав их причины хочется выключить и самому, но это действительно в другую сторону.
декораторы: ассоциативный массив в пхп это как хештаблица в ява, только без методов, некий бин, так им и пользуюсь. замени слово массив в слово обьект если так нравится!
я не спорю, я обсуждаю твой класс, пытаюсь рассказать о мире о котором ты не думаешь, пытаюсь расширить твой кругозор, но если не хочешь, не буду!
 

WMix

герр M:)ller
Партнер клуба
если вдруг мне попадется начальство, которое меня не устроит, это начальство пойдет куда подальше, в лучшем случае.
если вдруг мне попадется такой программист, который думает х* знает о чем но не о наших клиентах, он пойдет куда подальше!
 

Petja

Новичок
пытаюсь рассказать о мире о котором ты не думаешь, пытаюсь расширить твой кругозор, но если не хочешь, не буду!
Прошу прощения, я параноик... Почему-то часто кажется что меня подцепить или задеть хотят. Когда общение виртуальное я ничего не вижу кроме текста и интерпретирую в соответствии своими подсознательными программами, которые скорее вредны, чем полезны... Если ты не хотел задевать, то прошу прощения, тогда я не против общения, пусть даже и не совсем в тему.
 

WMix

герр M:)ller
Партнер клуба
спокойно подумай, можно сделать все, аякс это фишечка, сверху, все обычно должно работать на голом запрос-ответе без яваскрипт
 

Petja

Новичок
спокойно подумай, можно сделать все, аякс это фишечка, сверху, все обычно должно работать на голом запрос-ответе без яваскрипт
А что думать? Я уже сделал. Я написал что.
если вдруг мне попадется такой программист, который думает х* знает о чем но не о наших клиентах, он пойдет куда подальше!
Слушай, блин, да ты начальник. Слушай завидую, круто быть таким высоким и большим человеком, прямо мечта...
Я думаю, что если когда-нибудь стану таким же как ты начальником, то тогда начнется настоящая жизнь, тогда-то и все наладится.
Ради этого стоит жить, поздравляю тебя от всей души. Пошли их куда подальше этих думающих о чем попало программистов, так им!
Ты можешь это себе позволить. Человечище! Эх....
 

AmdY

Пью пиво
Команда форума
WMix, делать двойную работу ради параноиков - это дорого, тем более что прижётся пожертвовать и другими фишками.

Petja, теперь к твоим баранам. Тебе нужен всё тот же преславутый MVC и голова на плечах. Рассказывать всё это я не вижу смысла, так как ты сам можешь посмотреть реализации в Symfony, ZF или Yii, что вообще слудует делать всегда прежде чем писать такие вот корявые велосипеды.
 

Petja

Новичок
WMix, делать двойную работу ради параноиков - это дорого, тем более что прижётся пожертвовать и другими фишками.

Petja, теперь к твоим баранам. Тебе нужен всё тот же преславутый MVC и голова на плечах. Рассказывать всё это я не вижу смысла, так как ты сам можешь посмотреть реализации в Symfony, ZF или Yii, что вообще слудует делать всегда прежде чем писать такие вот корявые велосипеды.
Да, я сейчас изучаю доки Yii и буду на нем что-нибудь делать, чтобы разобраться.
А пока мне надо было реализовать формы поверх готовой CMS. Там есть свои модули для форм, но они слишком тяжеловесные.
Почему мне нельзя сделать форму самому? Мне ее надо было сделать, это не тренировка, это задача...
В общем я правильно понял совет - сначала поработай с ооп фреймворком и оттуда подчерпнешь знания?
Ну что же, буду идти по этому пути, а пока так вот спрашиваю по мелочам.
 

AmdY

Пью пиво
Команда форума
Petja, не обязательно работать, нужно смотреть другие реализации, иногда залезая во внутрь, если не понимаешь как это реализовано, причём это касается не только решений для php. Тема форм достаточна сложна и неоднозначна, чтобы её рассмотреть в пределах форума, мы можешь лишь помогать в сложных моментах.

Вот ты пишешь что есть уже готовое решение, стоит начинать с допиливания его, а не клепания своего.
 

Petja

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

Вот ты пишешь что есть уже готовое решение, стоит начинать с допиливания его, а не клепания своего.
То решение мне не подходит. Оно - это пакет устанавливающийся на эту CMS. И работает совершенно не так как мне надо, во-первых оно даже без ajax, а надстройка к нему для ajax - другой модуль - подцепляет js библиотеки и неоправданно тяжел. Поэтому мне надо было написать свое решение, я их постоянно писал для форм, но всегда по разному, т.к. забывал уже как прошлое работает, да и писать вроде не много. Но вот сейчас уже надоело, захотелось сделать что-то вечное или хотя бы настолько простое и понятное, чтобы как шаблон можно было использовать.

А вот готовые решения для форм, например, откуда можно взять, кроме как с фреймворков (т.к. это слишком - изучать фреймворк чтоб разобраться с егоной обработкой форм)?
С PEAR или Composer? Откуда обычно берут готовые решения? Т.к. с фреймворка какого-нибудь брать - это по-моему немного странно...
 

WMix

герр M:)ller
Партнер клуба
AmdY, ну не знаю, это не 2я работа, яб послушал что скажет общественность. основа должна работать без этих вкуснятин на js. хотяб на уровне frontend. я хочу разрешить пользователю не использовать js. если он это желает! и мне хочется уважать это желание, даже если разговор о 5% но это не только пользователи, это в первую очередь подход. работает просто - это уже результат и важный результат. это легко протестить это основная логика это php, далее поднялись на уровень и сделали удобно!
 
Последнее редактирование:

AmdY

Пью пиво
Команда форума
WMix, какие 5 процентов, отключение js уже даже их настроек браузера убирают. зачем расчитывать на извращенцев, которые ставят плагины вроде noscript. захотят включат. а включённый js это возможность собирать статистику и делать всякие красивости для остальных пользователей.
 
Сверху