Проблема ветвлений

Статус
В этой теме нельзя размещать новые ответы.

Perfilev

Новичок
в системе, ессно, есть библиотеки для работы с базой, файловой системой, xml, отладки и т.д.
Складывается такое впечатление, что мы говорим о разных вещах.
А про выделение модуля в класс - почему бы нет? так к нему удобнее намного обращаться, да и это вписывается в общую концепцию системы.
Я чё спрашиваю: как правильнее дробить ветвления в методе? Не выделять же отдельный метод под каждый кусок кода? Или выделять? :)

Давайте рассмотрим такую ситуацию
При выборе работы метода регистрации пользователя класса admin есть два варианта:
- показать регистрационную форму
- если пользователь отправил данные, то обработать их и выдать ответ

Что делать? Ветвить или выделять отдельный метод под каждую ветку (имхо, глупо под каждую ветку метод выделять, да и зачем выделять в метод неповторяющийся кусок кода)?

-~{}~ 23.03.07 11:42:

Gorynych
Спасибо за советы, кое-что полезного почерпнул из ваших постов.
 

Фанат

oncle terrible
Команда форума
А про выделение модуля в класс - почему бы нет?
потому что ты не научился ещё работать с классами.
При выборе работы метода регистрации пользователя класса admin есть два варианта:
прекрасно!
Вот ты сам пишешь, что всего два варианта. Два варианта - это не здоровенный кейс. Это очень простая конструкция.
вот и все.
Собственно, все твои проблемы решены.
ещё вопросы остались?
 

Gorynych

Посетитель PHP-Клуба
2 Фанат: извини. Я нагло присоединюсь к твоей фразе:
В общем, начинай структурировать свой код как раз снизу.
и оставлю только: убирайте логически законченные (обработка какой-либо одной ситуации: удаляем/добавляем/редактируем) блоки кода в отдельные процедуры или методы, а логически законченные сущности (пользователь/страница) - в отдельные модули/классы.
 

Alexandre

PHPПенсионер
рефакторинг: в первом приближении - завести по классу на каждый action, далее разбивать на методы
+1 самый дельный совет читай http://www.books.ru/shop/books/30436 там все по полочкам расписано, как лучше структурировать код,
можно найти в сети отсканированные главы.

include тебе в помощь
только в совокупе с советом 1, не используй консрукцию
Код:
switch ($call) { 
    case 'newuser': 
        include 1;
        break; 

    case 'login': 
        include 1;
        break; 

    case 'main': 
....
 

Фанат

oncle terrible
Команда форума
Perfilev
Посмотрел я твой код.
К ООП он имеет такое же отношение, как ое я - к царствующему дому Тайланда.
Та же самая процедурщина, просто в другой обёртке.
private function showPanel - отвал башки.

Судя по всему, проблема у тебя, действительно, не в синтаксисе, а в голове.
Ты не можешь структурировать элементы приложения.
Как ребёнок, не понимая сути вещей, судит по их внешнему виду, и относит слона и дирижабль к одной группе, а вилку и ложку - к разным.

кейс 'sections' с ветвлением на del, add и edit в том самом showpanel - как раз тому яркое подтверждение.

при том, что в классе module_admin, как раз, нет ни малейшего смысла
 

Perfilev

Новичок
Автор оригинала: Gorynych убирайте логически законченные (обработка какой-либо одной ситуации: удаляем/добавляем/редактируем) блоки кода в отдельные процедуры или методы, а логически законченные сущности (пользователь/страница) - в отдельные модули/классы.
Спасибо, это я и хотел услышать :)

Автор оригинала: Фанат
прекрасно!
Вот ты сам пишешь, что всего два варианта. Два варианта - это не здоровенный кейс. Это очень простая конструкция.
вот и все.
Собственно, все твои проблемы решены.
ещё вопросы остались?
Причем здесь этот пример! Веток и 100 может быть.
От вас не прозвучало никаких конкретных советов, слишком много гонора, впрочем, не я один такого мнения оказывается (google рулит ;) ).
И что за привычка "тыкать", я с вами водку не пил.
Нечего сказать по делу, лучше помолчите.

Ещё раз спасиб за конструктивные советы.
Тему можно закрывать. Общаться на данном форуме с таким модератором невозможно.
 

Фанат

oncle terrible
Команда форума
хехехе, знакомая риторика
почему-то у всех придурков лексикон один и тот же =)
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху