Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: ООП
Войти
Регистрация
Восстановить пароль
 
Stas107
0 / 0 / 0
Регистрация: 14.11.2016
Сообщений: 23
#1

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

11.05.2018, 13:12. Просмотров 123. Ответов 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 в одном файле
Можно ли сделать проверки POSTов с разных страниц в одном файле?

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

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

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

Слишком много кода во ViewModel-и
Нормально ли когда в одной VM под 300 строк, а в других в среднем до 50? Не...

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

4
andr-xw
121 / 76 / 32
Регистрация: 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 / 32
Регистрация: 05.03.2013
Сообщений: 447
11.05.2018, 17:10 #4
Stas107, нет, наследование используется когда нужно выделить из одного общего типа несколько частных случаева, например есть оплаченные и неоплаченные счета и у оплаченного счета не может быть метода "оплатить", а вот неоплаченному он нужен.
0
Зверушь
398 / 317 / 80
Регистрация: 01.05.2010
Сообщений: 1,578
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
Привет! Вот еще темы с решениями:

слишком много аргументов в вызове функции или как создать много файлов на рабочем столе
Мне нужно создать на рабочем столе очень много файлов вот команда для создания...

Слишком много писем
Доброго времени суток! Почтовая прога не в силах справиться с количеством...

Слишком много процессов
Добрый день! У меня случилась такая проблема, сам комп не глючит, но в...

Слишком много записей
Доброго времени суток! У меня тут некоторые проблемы со связями в Access. Когда...


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

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

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