Шаблон проектирования Facade (Фасад)
Наверное это самый простой паттерн, который используется повсеместно. Задача фасада — скрыть сложную реализацию внутри какого-то класса. То есть если есть 10 классов, у которых нужно выполнить кучу методов, то мы просто делаем один класс-фасад, который их и выполняет. У нас же останется только один «пусковой» метод.
23-06-2019PHP/ООП
Шаблон «Fluent interface» (Текучий интерфейс)
Строго говоря, «Текучий интерфейс» даже не сколько паттерн, сколько методика организации кода, направленная на то, чтобы упростить его чтение. Вместо последовательных вызовов функций в каждой строчке, организуется цепочка методов. Наверняка вы с таким встречались:
22-06-2019PHP/ООП
Шаблоны проектирования для PHP
Начну небольшой цикл статей посвященных шаблонам проектирования с реализацией на PHP. Постепенно эту запись буду редактировать, чтобы собрать все ссылки скопом.
21-06-2019PHP/ООП
Композиция и наследование ООП в PHP
Базовым принципом ООП (объектно-ориентированное программирование) является наследование. С помощью наследования можно построить сложную иерархию классов, где потомки наследуют функциональность своих родителей. В теории это всё выглядит замечательно, но на практике часто оказывается так, что наследование ухудшает код и делает архитектуру приложения негибкой и сложной.
05-06-2019PHP/ООП
ООП в PHP
Следует учитывать, что в PHP несколько упрощенная реализация ООП (объектно-ориентированное программирование). Поэтому, когда речь идёт об ООП как абстрактной парадигме, то следует использовать какой-то более серьёзный язык, вроде Java, С++ или Object Pascal. Потому что на этих языкам можно посмотреть практическую реализацию принципов ООП. В PHP программисты пытаются подражать другим ЯП, что в итоге приводит к излишней сложности и путанице, поскольку язык сам по себе не позволяет сделать «как в теории».
20-05-2019PHP/ООП
Работы по MF (майские). Праздничная скидка
Шаблон MF продолжает развиваться. Еще несколько дней на тестирование и все клиенты получат обновление. Я добавил два новых компонента шапки. Первый — более простой блок меню, где только лого, само меню и соц.иконки, и второй — рекламный блок, где задаётся произвольный текст и картинка.
12-05-2019Шаблон MF для MaxSite CMS
Выбор каркаса веб-приложения
Любое веб-приложение начинается с идеи. Скорее даже абстрактной идеи, которая в двух словах рассказывает какую проблему клиента нужно решить. После этого идея начинает уточняться: как решить, каким способом, что для этого требуется? Таким образом формируется начальное техническое задание, где не затрагивая непосредственную реализацию, уточняется круг основных задач. На следующем этапе начинают отрабатываться базовые элементы взаимодействия, например регистрация пользователей или ключевые элементы интерфейса.
07-05-2019PHP
Микро-фреймворк как основа веб-проекта на PHP
Несколько лет назад я делал приватный проект, где было много математики и обработки данных. Поскольку хотелось сразу сделать правильно, то использовал ООП, классы, статические методы и ряд новых функций PHP 5.5. После того, как проект загрузили на «боевой» сервер, всё «разрушилось», поскольку там стояла PHP 5.2, которую (по каким-то особым причинам), нельзя было обновить. Код пришлось переписывать с учётом старой версии. Теперь, если сервер всё-таки обновят до PHP 7.x, код опять придётся переписывать, поскольку между версиями нет полной совместимости.
04-05-2019PHP
Модульность в php-проекте
При разработке php-проекта часто возникает потребность разделить его на небольшие части — модули. Слово «модули» довольно расплывчато и в разных случаях может трактоваться по своему, но в данном случае речь идёт только о том, что модуль — это некий код, который может представлять собой единую сущность.
26-04-2019PHP
Автозагрузка классов в PHP
Когда в проекте много php-классов, то возникает проблема подключения их файлов. Например есть классы Class1 и Class2. Для того, чтобы их использовать, вначале нужно подключить их php-файлы. Само по себе подключение — это обычные require или include, поэтому задача сводится к тому, чтобы указать правильный путь к php-файлу. По мере, того как классов становится всё больше, возникает серьезная проблема с подключением каждого файла класса. В идеале процесс подключения должен быть автоматизирован и в PHP для этого используется механизм автозагрузчика.
23-04-2019PHP

