# Jahak (20.01.2017 / 21:56)
Да причем тут psr? Там мужик совсем о другом говорит, ты даже не смотрел похоже..
Да мне хватило предложения
"Один главный конструктор в классе Все остальные конструкторы его вызвают. Так есть единый код создания объекта, который легче поддерживать."
Я что-то не понимаю, или у класса может быть несколько конструкторов?
# AlkatraZ (20.01.2017 / 21:58)
Да мне хватило предложения
"Один главный конструктор в классе Все остальные конструкторы его вызвают. Так есть единый код создания объекта, который легче поддерживать."
Я что-то не понимаю, или у кл
автор описывал не PHP, потому такие рекомендации. Как сказали выше, это ближе к Java или C++, где есть перегрузка метода по семантике.
# AlkatraZ (20.01.2017 / 21:55)
Или ты еще юзаешь фреймворки по из скелетным основам, где приложение это /app 
Это детство.
Но я думаю, что ты меня выше прекрасно понял
я не юзаю фреймворки, ты забыл)
просто твой пост про модули меня смутил.
модуль по сути что угодно что модно открепить и прикрепить не поломав систему в целом
# ramzes (20.01.2017 / 21:59)
я не юзаю фреймворки, ты забыл)
просто твой пост про модули меня смутил.
модуль по сути что угодно что модно открепить и прикрепить не поломав систему в целом
точнее модуль это что угодно, что имеет четкие границы в виде списка зависимостей и API (под API может быть какой то класс или группа классов, через которые предполагается взаимодействовать с модулем).
А вот то, что можно легко открепить и прикрепить к системе, это - плагины.
P.S. Да, вариаций уйма )
Jahak, про конструктор например он написал, в пхп нет перегрузки
# Koenig (20.01.2017 / 22:02)
Jahak, про конструктор например он написал, в пхп нет перегрузки
Это да, но в остальном же все похоже
А вообще, чтоб начать писать крутой и чистый код и не просто начать, а это бы уже вошло в привычку и ты на автомате выдавал бы только такой, рекомендую следующий сервис:
https://scrutinizer-ci.com/g/m ... velop
Да, надо повозиться с его изучением и настройкой на свой проект, но зато потом, он тебе выдаст такое, что по началу офигеешь. Когда я в первый раз (2-3 года назад) запилил это на репозиторий mobiCMS, качество кода было всего 4,3 что меня тогда сильно возмутило
.gif)
ибо я был уверен в правильности своих взглядов. Словил нехилый "разрыв шаблона".
Но потом постепенно стал следовать их рекомендациям, исправлял, рефакторил, удалял говнокод и писал вместо него новый. в итоге поднял качество выше 9, что считается очень хорошо.
И теперь глядя на свой же старый код, считаю его быдлокодом, потому, что уже привык мыслить и работать по новому. Скрутинизер (разумеется не только он, но он дал сильный толчек) очень сильно в этом помог.
# AlkatraZ (20.01.2017 / 21:58)
Да мне хватило предложения
"Один главный конструктор в классе Все остальные конструкторы его вызвают. Так есть единый код создания объекта, который легче поддерживать."
Я что-то не понимаю, или у кл
По мимо этого, он предлагает:
1. Конструкторы не должны содержать выполняющий код
Конструкторы только создают/инициализируют объект, вся полезная работе происходит в методах.
2. Не используйте utility классы, хелперы
Это обычно не классы, а набор процедур. Это очень частый антипаттерн в ООП.
3. Не используйте геттеры и сеттеры
Объекты в ООП не просто структуры данных. Структура данных прозрачная, а объект — черный ящик. Структурв данных пассивная, объект — активный. Геттеры и сеттеры нарушают целостность объекта, он становится не иммутабельным.
4. Не используйте статические методы
Статические методы из процедурного стиля программирования. Они удобны для компьютера, но плохи для ООП, классов, поддержки и тестирования. Императивный стиль — это про алгоритмы и исполнение. Декларативный — про объекты и поведение. Нужно стремиться к декоративному стилю.
Выделил самое основное
AlkatraZ, пришлось шторм настроить, чтоб добавлял пустую строку в конец файла. хотя я не понимаю зачем она там
# Jahak (20.01.2017 / 22:09)
По мимо этого, он предлагает:
1. Конструкторы не должны содержать выполняющий код
Конструкторы только создают/инициализируют объект, вся полезная работе происходит в методах.
2. Не используйте util
Да брось ты, не про РНР он писал

Только путает