Игорь_Vasinsky
31.10.2013 - 15:44
это вложенные объекты, по суте удобная вещь, ни какой связки с родителем нету - тот просто возвращает ссылку на объект - вот и всё)
и вместо
$form->setTextarea('message');
$form->->setAttr('cols|30');
я пишу
$form->setTextarea('message')
->setAttr('cols|30');
или
$form->setTextarea('message')->setAttr('cols|30');
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
redreem
31.10.2013 - 15:55
Игорь_Vasinsky
интересно как ты собираешься запоминать, какие методы имеют return $this; а какие нет?
вот почему метод checkProperty не возвращает this?
или addInput не возвращает, а вот addSelect возвращает?
я понимаю что "черновичек", я лишь привожу пример, что системы с таким подходом заставляют дополнительно запоминать, где есть this, а где нет. и поэтому это зло!
Игорь_Vasinsky
31.10.2013 - 15:59
Цитата |
интересно как ты собираешься запоминать, какие методы имеют return $this; а какие нет? |
я только для публичных сделал - когда что то ставлю в тег
Цитата |
вот почему метод checkProperty не возвращает this? |
он private - с ним в коде не играешь
Цитата |
или addInput не возвращает, а вот addSelect возвращает? |
можно у всех addElem убрать -0 они по сути завершающий этап формирования тега
да, хочу причесать и валидатор. мне кажется удобно должно быть
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Invis1ble
31.10.2013 - 16:04
Про фабрику уже сказали, я вставлю свои 5 копеек:
вместо private лучше делать protected, иначе как наследоваться от класса?
названия констант общепринято писать в верхнем регистре
_____________
Профессиональная разработка на заказЯ на GitHub |
второй профиль
redreem
31.10.2013 - 16:18
Цитата |
он private - с ним в коде не играешь |
т.е. подход такой: я для паблика пишу, а для привата, где так же можно использовать внутриклассовые наборы вида a->b->c-> - не пишу? а смысл такого разделения?
Цитата |
можно у всех addElem убрать -0 они по сути завершающий этап формирования тега |
я еще соглашусь с принципом: "если метод не призван возвращать какие-то данные, то возвращаем $this"
exotica
31.10.2013 - 16:43
вернусь ка я пожалуй в свою песочницу, пусть большие дяди без меня обсуждения ведут
с горестью постановляю что я пока не представляю зачем этот класс
_____________
[FAQ]Регистрации пользователей, сохранение в БД---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
Игорь_Vasinsky
31.10.2013 - 17:07
Цитата |
т.е. подход такой: я для паблика пишу, а для привата, где так же можно использовать внутриклассовые наборы вида a->b->c-> - не пишу? а смысл такого разделения? |
зачем, хочешь и внутри класса используешь) писать чуток меньше просто)
Цитата |
я еще соглашусь с принципом: "если метод не призван возвращать какие-то данные, то возвращаем $this" |
ежу понятно, не массив же вовзращать и того и того))
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
redreem
31.10.2013 - 17:11
Цитата |
ежу понятно, не массив же вовзращать и того и того |
я имел ввиду, что при флюид подходе это единственный здравый критерий
либо так на 100% либо вообще ни как
Для начало Я бы Вам посоветовал что бы Вы придерживались одному стилю программированию.
Вы где то приписываете префикс 'set' где то нет,где то сокращаете название метода,а где то нет.
Так же это относиться к константам.
Комментарии к методам в ужасном стандарте.
Такой класс очень сложно читать.
Стиль очень грязный.
По коду можно понять уровень программиста,его стиль,его отношение ко всему.
Видно что Вы запихали все в один класс.
Вы не разделяете логику,у Вас все в кучу.
Это дает понять что Вы не понимаете концепций ООП.
Таким же образом Вы бы могли создать процедуру и все туда запихать и возвращать ссылку.
Остальное как посоветовал в верном направлении
Dezigo Разделяйте логику.Нарисуйте на листики что Вы хотите от этого.
Посмотрите примеры как реализованы в frameworks.
Почитайте об шаблонах проектирование.
Они для этого и придуманы
Игорь_Vasinsky
31.10.2013 - 18:16
мы это уже проходили.
практики нет.
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Dezigo а я бы вообще сделал так
$form = new HTMLForm;
$form->setMetadata(array(
'form' => array(
'autocomplete' => 'on',
'enctype' => 'multipart/form-data',
'method' => 'POST',
'name' => 'form1',
),
'fields' => array(
'attach' => array(
'type' => 'file'
),
'name' => array(
'type' => 'text',
'placeholder' => 'Введите логин',
),
'email' => array(
'type' => 'text',
),
'sex' => array(
'type' => 'radio',
'items' => array(
'female' => 'Второй',
'male' => 'Первый'
)
),
'answer' => array(
'type' => 'checkbox',
'items' => array(
'female' => 'Второй',
'male' => 'Первый'
),
),
'myselect' => array(
'type' => 'select',
'id' => 'myid',
'items' => array(
'female' => 'Второй',
'male' => 'Первый'
),
),
'message' => array(
'type' => 'textarea',
'cols' => '30',
'rows' => '5',
'text' => 'Next message here'
)
),
));
echo $form;
Игорь_Vasinsky я так и знал что ваши навыки не ахти... ваш код тому подтверждение.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.