PHP: пора забыть про ООП?

Слушайте, коллеги, есть у меня мысль одна. Вот мы все носимся с этим объектно-ориентированным программированием в PHP. Вроде как стандарт, база для любой серьезной веб-разработки. Но чем больше копаюсь в реальных проектах, тем больше меня грызут сомнения. А так ли оно нам нужно, это ООП, особенно для относительно простых web-сайтов?

Смотри, тут логика такая: часто ООП раздувает код, усложняет его понимание для новичков. Такое ощущение что многие архитекторы просто пихают объекты ради объектов, а не потому, что это действительно решает какую-то проблему. В итоге, даже простая задача превращается в целую эпопею с классами, интерфейсами и вот этим всем. Для меня, например, всегда было проще написать пару функций, которые решают задачу здесь и сейчас, чем городить целый класс, который потом еще и тестировать надо.

Частая ошибка — это когда начинают с ООП, хотя можно было бы обойтись процедурным подходом, особенно если речь не идет о каком-то супер-сложном backend. Это ж как молотком гвоздь забивать, когда есть отвертка. Ну, или наоборот, смотря как посмотреть. Я вот думаю, может, стоит вернуться к более простым, процедурным решениям для многих задач? Это бы ускорило разработку и сделало бы код более читаемым.

А вы как думаете, коллеги? Переоценено ли ООП в PHP?

Подробнее

Slim Framework — недооцененный MVP для микросервисов, или просто нишевый фреймворк?

Народ, вот сижу и думаю: Slim. Ну, этот, PHP-микрофреймворк. С одной стороны, для быстрого создания API и простых веб-сервисов он просто идеален. Легковесный, не перегруженный, позволяет сосредоточиться на чистой логике. Реально ускоряет разработку, когда тебе не нужна вся эта монструозная обвязка полноценных фреймворков типа Symfony или Laravel. Особенно актуально при построении микросервисной архитектуры, где каждый сервис должен быть максимально независимым и компактным.

С другой стороны, может, он так и останется вечной нишей для специфических задач? Ведь для более-менее сложных проектов, где требуется хорошая архитектура, ORM, шаблонизаторы «из коробки» — тут уже Slim начинает требовать кучу внешних библиотек, и вся его прелесть исчезает. Кмк, это выбор между скоростью прототипирования и долгосрочной поддержкой сложного веб-сайта.

Главный вопрос: оправдана ли его популярность в контексте современных требований к backend-разработке? Или же это просто удобный инструмент для энтузиастов?

А вы как думаете? Стоит ли Slim Framework более пристального внимания для серьезных проектов, или лучше оставаться в рамках проверенных решений?

Подробнее

Помогите с выбором фреймворка для бэкенда, запутался совсем

Всем привет! Уже неделю сижу, изучаю разные фреймворки для backend разработки, и чем больше читаю, тем меньше понимаю, что выбрать. Хочется что-то производительное, но при этом с хорошей документацией и комьюнити, чтобы потом не было проблем с поиском решений.

Рассматривал Django, Flask, NestJS. Есть ли тут опытные разработчики, которые могли бы поделиться своим видением? На какой технологии сейчас лучше строить новые web-сайты, чтобы потом не пришлось все переписывать через год?

Подробнее

PHP 8.3: Стоит ли оно того? — Крáкен маркетплейс ссылка

Привет всем! Вышла новая версия PHP 8.3. Кто уже успел попробовать? Есть ли там какие-то такие фичи, которые реально меняют правила игры для повседневной разработки? Или это просто очередное минорное обновление с парой косметических правок? Я пока сижу на 8.2, все устраивает, но хочется быть в тренде. Какие ваши впечатления? Стоит ли спешить с обновлением?

ссылка на Крáкен

Подробнее

5 шагов к более безопасному WordPress: личный опыт

Ну, привет, коллеги. Начитался тут про уязвимости, про взломы. Сам через это проходил, и, скажу я вам, процесс тот еще. WordPress — платформа популярная, значит, и цель для всяких там неприятных личностей. Хотите, чтобы ваши web-сайты были чуточку надежнее? Вот вам мой опыт, лично проверенный.

  • Смена префикса базы данных. Да, это старый трюк, но работает. По умолчанию он `wp_`. Зачем всем знать, какой префикс у вас? Меняйте его. Можно при установке, а можно и потом, но это уже сложнее. Есть плагины, которые помогают, но я бы вообще поставил на чистый, если есть возможность
  • Двухфакторная аутентификация. Это вообще маст-хэв. Не только для админки WordPress, но и для всего, что связано с доступом. Есть куча плагинов, которые это реализуют. Без второго фактора — никуда. Это реально снижает риск случайного или целенаправленного взлома.
  • Регулярные обновления. Не только самого WordPress, но и всех тем и плагинов. Понимаю, иногда обновление плагина может сломать вам всю frontend логику, но сидеть на старой версии — это подставлять под удар весь сайт. Ищите надежные темы и плагины, которые обновляются регулярно.
  • Контроль доступа пользователей Не всем нужен полный доступ администратора. Прописывайте роли правильно. Зачем контент-менеджеру иметь доступ к настройкам темы? Это минимизирует ущерб, если учетка такого пользователя будет скомпрометирована
  • Мониторинг безопасности Ставьте какой-нибудь плагин, который отслеживает подозрительную активность. Хотя бы простейший. Он может предупредить вас об атаках методом перебора или попытках внедрения. Да, иногда он будет ругаться на ложные срабатывания, но лучше перебдеть.

Это не панацея, конечно. Но эти шаги реально помогают защитить ваши творения. Особенно если вы занимаетесь не только frontend, но и backend разработкой, и понимаете, как все это работает изнутри. Удачи в создании сайтов!

Подробнее

Laravel Livewire — ну типа, как его настроить под сложную авторизацию?! SOS!

Ребят, я тут уже третий день бьюсь с Laravel Livewire и авторизацией. Вроде все по мануалам сделал, но когда пытаюсь добавить роли и пермишены для пользователей, всё ломается на старте. Приходится каждый раз заново логиниться, хотя сессия вроде как живая. Это вообще реально сделать без боли или я что-то упускаю?

Пробовал через стандартный Auth::user(), но он иногда возвращает null когда точно знаю, что пользователь залогинен. Где тут собака зарыта? Может, есть какой-то лайфхак или специфическая настройка для Livewire, чтобы он корректно работал с защищёнными страницами и ролями? Любые советы просто спасут мою нервную систему!

Подробнее

А я думал, всё, приплыли... с этим PDO

Ну вот, сижу я, значит, над очередным проектом по созданию сайтов. Задача вроде стандартная, но тут решили внедрить PDO вместо старого доброго mysql_*. Ну, типа, безопасно, все дела. Думаю, да лан, щас я быстро разберусь, все отладим за пару часов.

Первая же попытка подключиться к базе данных превратилась в какой-то квест. Ошибки сыпались как из мешка, а я, блин, сижу и не понимаю, где накосячил. Перечитал доки, пересмотрел кучу примеров в инете — вроде все правильно делаю. Сервер перезапускал, настройки драйверов проверял, даже сон свой променял на борьбу с этим PDO. Веб-разработка иногда такой подставы подкидывает, просто жесть

В итоге, после часов трех (а может и четырех, я уже сбился со счета) какой-то мутной возни, выяснилось что проблема была в каком-то мизерном символе в строке подключения, который я тупо не заметил. Ну вот как так-то? Всё это время мои нервы были на пределе, а оказалось все так банально. Чуть сам себе не подкинул тему на форум типа «помогите, не работает PDO». Хорошо хоть сам разобрался, а то пришлось бы кракен ссылкой той заниматься, ахах.

Зато теперь я этот PDO почти как родной понимаю. Опыт, он такой, болезненный, но ценный. Главное, чтобы на frontend’е потом все гладко прошло, а то backend — это еще полбеды.

Подробнее

PHP 8.3: Стабильный шаг вперёд?

Ну что, коллеги, добрался я тут до свежей версии PHP, 8.3. Помню еще, когда мы на третьих версиях сидели, а сейчас вон, восьмая уже бодренько так развивается. Времена меняются, но ощущение, что что-то новое вышло, особенно для тех, кто с backend ещё со времён зарождения веб-разработки сталкивается, всё то же. Поставил, пощупал, есть о чем сказать.

Что понравилось? Ну, прежде всего, добавили новые функции для работы со строками, вроде trim() с возможностью указать, какие символы обрезать. Мелочь, а приятно, когда код становится чуть чище. И еще, наконец-то, появился `is_countable()` — теперь не нужно городить огород с проверкой, можно ли что-то посчитать. Это прям сильно облегчает жизнь, особенно когда работаешь с данными из разных источников, где типы могут гулять.

Минусы? Да как сказать. Серьёзных прорывов, которые бы кардинально изменили рабочий процесс, я не увидел. Это скорее планомерное улучшение, куда ж без этого. Не стал бы я бросаться обновляться на всех проектах сразу, особенно на старых, где каждая строчка кода выверена годами. Но для новых web-сайтов — однозначно стоит рассмотреть.

В общем, мое итоговое впечатление: PHP 8.3 — это надёжный, предсказуемый релиз, который продолжает курс на улучшение языка. Никаких революций, но приятные мелкие фичи, делающие код элегантнее и безопаснее. Для тех, кто ценит стабильность и постепенное развитие, это отличный выбор. Раньше, помню, приходилось ждать долгие годы ради сколько-нибудь значимых изменений, а тут все происходит куда динамичнее. Главное, чтобы оптимизация не проседала.

Подробнее

GitLab CI/CD — огонь, но есть нюансы — web-сайты

Всем привет! Давно хотел попробовать GitLab CI/CD для своих проектов по веб-разработке, слышал много хорошего. Ну вот, наконец, добрался. Короче, штука реально мощная, особенно если ты уже на GitLab сидишь.

Что понравилось:

  • Интеграция с репозиторием — это просто пушка. Никаких лишних настроек, все как-то само собой работает. Создал `.gitlab-ci.yml` в корне и вперед.
  • Богатый выбор готовых образов Docker для разных задач (сборка frontend, backend, тесты). Реально экономит время, потому что не надо самому все настраивать с нуля.
  • Гибкость — можно настроить пайплайны практически под любые нужды. От простых деплоев до сложных мультистейджевых сборок.
  • Визуализация пайплайнов — удобно следить за процессом, сразу видно, где что упало.

Что не очень:

  • Документация местами перегружена. Иногда искал ответ на простой вопрос минут 20
  • Цена на более продвинутые фичи может кусаться, если у вас крупный проект. Для инди-разработчика или небольших команд есть бесплатный тариф, но он с ограничениями.
  • Иногда бывают странные глюки с кэшированием, приходится разбираться, почему оно не работает как надо

Итого: GitLab CI/CD — это топчик тема для создания сайтов, особенно если вы используете GitLab как основную платформу. Он сильно упрощает жизнь и ускоряет процесс разработки. Главное — немного разобраться в синтаксисе конфигов и не бояться экспериментировать.

Всем удачных деплоев!

Подробнее

HELP! Чёт я не могу с этой кракен ссылкой разобраться! — кракен онион тор

Народ, вообще не знаю, что делать. Пытаюсь на свой сайт добавить какую-то интеграцию с этим кракен маркетплейсом, вроде даже нашел какую-то кракен ссылку, но она никуда не ведет. Перепробовал уже кучу вариантов, все время ошибка какая-то выскакивает. Может, кто сталкивался уже с подобным? Есть у кого-нибудь рабочая ссылка на кракен или знает, где искать актуальную инфу? А то уже мозг кипит.

Подробнее