Форум программистов, компьютерный форум, киберфорум
Наши страницы

PHP: ООП

Войти
Регистрация
Восстановить пароль
 
Stas107
0 / 0 / 0
Регистрация: 14.11.2016
Сообщений: 23
#1

Слишком много кода в одном файле - PHP ООП

11.05.2018, 13:12. Просмотров 84. Ответов 4
Метки нет (Все метки)

Мужики, дайте совет. По моему я переборщил с количеством кода и методов.

Создал класс Счет Invoice. Класс, который создает обычный бухгалтерский счет. Выбираются позиции, заполняются реквизиты, сохраняется информация в БД, распечатываем документы.

Методы:

public selectOne возвращает массив одного счета
public selectAll возвращает массив всех счетов
public create
public update
public delete
public createAttribute добавление состава счета в БД
public updateAttribute обновление состава счета в БД
public deleteAttribute удаление позиции состава счета в БД
public payment внесение оплаты всего счета
public paymentAttribute внесение оплаты конкретной позиции
private createDoc1 создание счета в формате rtf
private createDoc2 создание накладной в формате rtf
private createDoc3 создание акта в формате rtf
и еще пару технических private методов

У меня класс занимает 2000 срок. Это нормально? Может его надо разделить на части?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.05.2018, 13:12
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Слишком много кода в одном файле (PHP ООП):

POST в одном файле - PHP
Можно ли сделать проверки POSTов с разных страниц в одном файле?

Тестирование кода в одном окне - PHP
подскажите пожалуйста как настроить, чтобы при запуске любого сценария .php в браузере, код открывался не в новом окне, а в одном и том же?...

Сайт на одном php файле или в нескольких? - PHP
Доброго времени суток. Используя различные GET параметры, по сути, я могу создать целый сайт в одном php файле, каждый раз выводя только...

Где можно скачать простейший скрипт чата в одном файле на PHP? - PHP
Где можно скачать простейший скрипт чата в одном файле на PHP?

Слишком много кода во ViewModel-и - C# WPF
Нормально ли когда в одной VM под 300 строк, а в других в среднем до 50? Не представляю как их разнести, а читабельность страдает... Я...

Лучше много функций в одном файле или по одной в разных файлах? - PHP
Доброго времени суток. Создаю свой сайт с нуля, уже есть 9 довольно больших функций для обработки данных, дальше-больше, пока храню...

4
andr-xw
121 / 76 / 18
Регистрация: 05.03.2013
Сообщений: 447
11.05.2018, 15:30 #2
Вопрос не в количестве методов или строк, но вот твой класс действительно делает слишком много

Цитата Сообщение от Stas107 Посмотреть сообщение
Выбираются позиции, заполняются реквизиты, сохраняется информация в БД, распечатываем документы.
Вот сделай для каждой из этих задач отдельные классы.
0
Stas107
0 / 0 / 0
Регистрация: 14.11.2016
Сообщений: 23
11.05.2018, 15:38  [ТС] #3
Так это ведь одна сущность. Обычно советуют всё, что касается одной модели, делать в одном классе.
Или речь о наследовании?

InvoiceModifi extands Invoice
InvoicePayment extands Invoice

?
0
andr-xw
121 / 76 / 18
Регистрация: 05.03.2013
Сообщений: 447
11.05.2018, 17:10 #4
Stas107, нет, наследование используется когда нужно выделить из одного общего типа несколько частных случаева, например есть оплаченные и неоплаченные счета и у оплаченного счета не может быть метода "оплатить", а вот неоплаченному он нужен.
0
Зверушь
393 / 312 / 51
Регистрация: 01.05.2010
Сообщений: 1,543
15.05.2018, 20:50 #5
Модель это не всегда один класс... это слой. Тут может быть несколько классов. Можно создать классы DocumentCreator, DocumentPrinter и т.д. и работать с этими классами.
Цитата Сообщение от Stas107 Посмотреть сообщение
private createDoc1 создание счета в формате rtf
private createDoc2 создание накладной в формате rtf
private createDoc3 создание акта в формате rtf
Что вы будете делать если понадобиться еще и xls? Еще 3 метода писать? А потом pdf, doc, xml и т.д.
Почитайте про шаблоны проектирования, что-то подобное там есть 100%, сам недавно читал, но забыл как называется Для создания различных типов документов, думаю подойдет Abstract Factory, а для сохранения в различных форматов - Strategy. Ну это моя мысль с первого взгляда. Возможно меня поправят, самому интересно. Но класс в любом случае нужно разбить.
0
15.05.2018, 20:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2018, 20:50
Привет! Вот еще темы с ответами:

слишком много аргументов в вызове функции или как создать много файлов на рабочем столе - C (СИ)
Мне нужно создать на рабочем столе очень много файлов вот команда для создания 1 файла wchar_t szBuf{ 0 }; ...

Слишком много записей - MS Access
Доброго времени суток! У меня тут некоторые проблемы со связями в Access. Когда я связываю два(почти одинаковых) запроса (в каждом по...

Выдаёт слишком много - C (СИ)
Программа которая ищет вход в строку фразы и количество входов Должна выдавать Pos 2 count 1 а выдаёт pos 2 pos...

Слишком много условий - PHP
как будет правильно? вот на что я способен, но по моему это неверно да и не удается это даже запустить... ошибка syntax error, unexpected...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru