Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
11.3K subscribers
1.36K photos
20 videos
26 files
4.05K links
Все самое полезное для пхпшника в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/bca892d6

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Download Telegram
«Как мы разрабатывали сервис расчета стоимости доставки для ритейлера»

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

Здесь рассказывается о том, как был разработан и внедрён сервис расчёта стоимости доставки.
👍31
Гайд по мягкому удалению в Laravel

🔄 Мягкие удаления в веб-приложениях позволяют удалять данные без их окончательного удаления из базы данных. Вместо этого устанавливается флаг, указывающий, что данные были удалены, что позволяет их восстановить при необходимости. В Laravel мягкие удаления реализуются с использованием столбца deleted_at с отметкой времени.

👍 Преимущества мягких удалений включают восстановление данных, аналитические цели и двухэтапный процесс удаления для дополнительной верификации. Однако они могут привести к увеличению размера базы данных, случайному запросу удаленных данных и потенциальным проблемам с конфиденциальностью данных.

🛠️ Чтобы реализовать мягкие удаления в Laravel, вы используете трейт SoftDeletes в вашей модели и добавляете столбец deleted_at в таблицу базы данных. Модели мягких удалений могут быть восстановлены или окончательно удалены с использованием предоставленных методов.

🧪 Тестирование софт-удалений включает в себя проверку правильности софт-удаления, восстановления или окончательного удаления моделей, а также проверку запросов на исключение или включение софт-удаленных моделей в зависимости от задуманного. Необходимо быть осторожным с использованием фасада DB, чтобы избежать случайного запроса софт-удаленных данных.
4👍2🔥2😁1
#дайджест новостей по PHP за неделю:

🔎Выпущены PHP 8.2.18, PHP 8.3.6 & PHP 8.1.28 — Команда разработчиков PHP объявляет о немедленной доступности PHP 8.2.18, PHP 8.3.6 и PHP 8.1.28. Это релиз безопасности.

🔎Команда Laravel выпустила v11.4 — с новым фасадом исключений, поддержкой Enum в методе Collection::mapinto() и многое другое.

🔎Basset — альтернативный способ загрузки ассетов CSS & JS

🔎Неделя Symfony #902 (8-14 апреля 2024 г.)
👍3🔥21
Глубокое погружение в оптимальные настройки PHP-FPM

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

Раздел по устранению неполадок советует проверять журналы PHP-FPM на предупреждения о настройке max_children, которая определяет максимальное количество дочерних процессов, которые PHP-FPM может породить. Также выделяется важность контроля за потреблением памяти, который можно отслеживать с помощью команд, таких как htop или free -hl.

Настройка менеджера процессов включает выбор между статическим, динамическим и по требованию, каждый из которых имеет свои компромиссы в потреблении памяти и отзывчивости. В статье объясняется, как рассчитать подходящее значение max_children на основе доступных ресурсов сервера и как настраивать другие связанные параметры.

Проведение тестирования различных вариантов менеджера процессов рекомендуется с использованием ApacheBench, с результатами, показывающими неожиданные различия в производительности между статическим, динамическим и по требованию настройками. Кроме того, в статье обсуждаются дополнительные параметры, такие как slowlog для отслеживания медленных запросов и параметры аварийного перезапуска для обработки отказов процессов.
👍12
Настраиваем Windows WSL для локальной разработки Laravel

В этой небольшой статье рассказывается, как правильно настроить WSL в Windows 11 для локальной разработки Laravel-приложения. Мы собираемся установить php, mysql, nginx и composer, а также отредактировать файл hosts в самом Windows.
10👍5🥱5
Какая система типов используется в PHP? Опишите плюсы и минусы.

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

Плюсы:

✔️Гибкость: Динамическая типизация делает PHP очень гибким языком программирования, позволяя быстро писать и изменять код.

✔️Простота использования: Не нужно явно объявлять типы переменных, что упрощает написание кода, особенно для новичков.

✔️Легкость внесения изменений: Поскольку типы переменных могут быть изменены в любой момент, изменение структуры данных или логики программы может быть более легким и менее разрушительным.

✔️Меньше кода: Нет необходимости явно приводить типы или выполнять проверки на соответствие типов, что может сократить объем кода.

Минусы:

Потенциальные ошибки времени выполнения: Поскольку типы определяются во время выполнения, ошибки, связанные с несоответствием типов, могут возникнуть только во время выполнения программы, что может затруднить их обнаружение и отладку.

Уменьшение производительности: Проверка типов во время выполнения может негативно сказаться на производительности приложения, особенно в больших и сложных проектах.

Меньшая надежность: Поскольку типы переменных могут изменяться во время выполнения, это может привести к неожиданному поведению программы и усложнить ее понимание и поддержку.

Трудности в документации и отладке: Из-за динамической типизации может быть сложно определить типы переменных и их ожидаемое поведение, что может затруднить документирование кода и отладку ошибок.

#вопросы_с_собеседований
10
В Symfony инструкции не всегда достаточны, но Symfony имеет интеграцию с Doctrine ORM, что круто! 🎉

🛠️ Проблема:
Как выполнить запросы к БД на основе данных формы?

📋 Решение:
Предлагается использовать объект типа DTO (DataTransferObject), созданный на основе данных формы, чтобы передавать структурированные данные в методы запросов. Это делает код более надежным и предсказуемым.💼

Далее показывается пример создания формы и обработки данных из неё в контроллере Symfony. Автор использует созданный объект DTO для передачи данных в метод запроса репозитория.

Затем переходим к рассмотрению метода findByFilter в репозитории событий (EventRepository). Этот метод выполняет запрос к базе данных на основе данных из формы, применяя различные фильтры в зависимости от выбранных пользователем параметров. Автор обсуждает компактность и эффективность этого метода, а также его возможность повторного использования благодаря отделению от остального кода.🛠️

🔧 Преимущества:
Код становится более читаемым и надежным 📖
Запросы становятся короткими, эффективными и переиспользуемыми 💪
Можно выполнять стандартные проверки кода на SQL-запросах 👨‍💻

Короткие, эффективные и переиспользуемые запросы к БД — круто! 🚀
🥱7👍32
Почему FilamentPHP — это хорошее решение для создания CMS

В жизни каждого PHP-разработчика рано или поздно настаёт момент, когда его просят написать корпоративный сайт, новостной портал или очередной интернет-магазин.

Конечно, в этом случае можно взять готовое решение вроде Bitrix. Однако порой эти огромные комбайны оказываются действительно слишком уж огромными, и для управления тремя с половиной табличками проще написать свое решение.
🥱133
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
2
4 сайта с бесплатными шаблонами для Laravel

HTMLrev: Огромная коллекция бесплатных HTML-шаблонов, в том числе множество для панелей управления Laravel. Часто обновляются и позволяют легко просматривать по категориям.

Creative Tim: Известный своими готовыми к использованию шаблонами, Creative Tim предоставляет UI-киты, административные панели и системы дизайна для нескольких архитектур, включая Laravel. Их шаблоны поставляются с высококачественным кодом и документацией.

ThemeSelection: Предлагает как бесплатные, так и платные UI-киты и шаблоны панелей управления. Хотя доступно всего несколько бесплатных вариантов, они отличаются замечательным качеством и сравнимы с премиальными пакетами.

JustBoil: JustBoil специализируется на шаблонах панелей управления для различных библиотек, включая Bulma и Tailwind. Их бесплатные шаблоны профессионально разработаны, написаны и документированы, предлагая множество компонентов для создания панелей управления.
🔥102👍2🌚21
🔍💼 Исследование рынка: 8 наиболее востребованных языков программирования в 2024 году

Результаты исследования рынка IT-вакансий, проведенного DevJobsScanner. Были проанализированы 14 миллионов объявлений и выявлены 8 наиболее востребованных языков программирования.

Читать статью

#почитать
1
💬Расскажите, какой из своих проектов вы могли бы назвать бесполезным? Или поделитесь примером такого проекта, который наблюдали со стороны.

Ждём вас в комментариях👇

#интерактив
😁9
Как создать LLM чат на WebSocket с помощью llama.cpp

Туториал описывает процесс настройки функционала чата с использованием Large Language Model (LLM) в веб-приложении.
3
Что такое «PHP Extension Community Library» (PECL), и как её использовать для расширения функциональности PHP?

Библиотека сообщества расширений PHP (PECL) служит репозиторием для PHP-расширений. PHP-расширения представляют собой модули, написанные на C, которые могут быть динамически загружены в PHP для предоставления дополнительной функциональности. Эти расширения могут взаимодействовать с PHP на более низком уровне, чем обычные скрипты PHP, позволяя разработчикам использовать системные ресурсы, взаимодействовать с базами данных и выполнять другие задачи, которые могут быть более эффективно реализованы на языке более низкого уровня.

Цель PECL заключается в предоставлении централизованного места для разработчиков, где они могут делиться и распространять PHP-расширения. Это гарантирует, что разработчики PHP могут легко находить, устанавливать и использовать расширения для расширения возможностей PHP.

Чтобы использовать PECL для расширения функциональности PHP, обычно следуют следующим шагам:

Установка PECL: Убедитесь, что PECL установлен на вашей системе. Обычно он поставляется вместе с установками PHP, но в зависимости от вашей конфигурации может потребоваться установить его отдельно.

Поиск расширений: Просмотрите веб-сайт PECL или используйте команду pecl search, чтобы найти расширения, предоставляющие необходимую функциональность.

Установка расширений: После того как вы нашли нужное расширение, вы можете установить его с помощью команды pecl install, за которой следует имя расширения.

Включение расширения: После установки расширения вам нужно включить его в файле конфигурации PHP (php.ini). Вы можете сделать это вручную, добавив строку вроде extension=имя_расширения.so в файл php.ini, или с помощью команды phpenmod, если вы используете систему с хранилищем расширений и приложений PHP (PEAR)

Перезапуск веб-сервера: После включения расширения необходимо перезапустить веб-сервер (например, Apache или Nginx), чтобы изменения вступили в силу.

Тестирование расширения: Наконец, вы можете протестировать функциональность, предоставляемую расширением, в ваших PHP-скриптах. Вы можете использовать функции или классы расширения, как это указано в его документации.

#вопросы_с_собеседований
👍10