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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Download Telegram
SPX

Простое и понятное расширение для профилирования PHP со встроенным веб-интерфейсом. От других подобных расширений оно отличается тем, что:

🟢полностью бесплатное и ограниченное вашей инфраструктурой (т.е. никаких утечек данных в SaaS).
🟢Очень прост в использовании: просто установите переменную окружения (командная строка) или включите радиокнопку (веб-запрос) для профилирования вашего скрипта. Таким образом, вы освобождаетесь от необходимости ручного инструментирования кода (поддерживается даже Ctrl-C долго работающего скрипта командной строки).
🟢возможность получения множества метрик: в настоящее время поддерживается 22 метрики (различные метрики времени и памяти, включенные файлы, используемые объекты, ввод-вывод...).
👍12
Что такое фильтр Блума?

Фильтр Блума — это вероятностная структура данных, которая используется для тестирования принадлежности элемента множеству. Он может давать ложные положительные результаты, но никогда не дает ложных отрицательных. Это значит, что если фильтр Блума говорит, что элемент принадлежит множеству, это может быть не так (ложное срабатывание), но если фильтр говорит, что элемент не принадлежит множеству, это точно так.

Подробнее в статье

#вопросы_с_собеседований
👍11🤔5
Использование моделей в качестве флагов

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

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

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

Ограничения простых флагов
Простые флаги (логические или временные метки) предоставляют ограниченную информацию. Например, они не позволяют узнать, кто деактивировал пользователя или почему. Можно добавить дополнительные поля для этих данных, но это усложняет структуру базы данных.

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

Полиморфные отношения
Еще один шаг — использование полиморфных отношений и трейтов для возможности флагирования любых моделей. Это повышает гибкость и позволяет применять одни и те же методы ко многим разным моделям в приложении.
👍4🌚31
Это пример того, как получить название страны, город и адрес по IP-адресу в 👩‍💻 Laravel 10.

В этом руководстве мы будем использовать пакет stevebauman/location для composer, чтобы получить текущее местоположение пользователя в приложении Laravel. Мы получим название страны, код страны, код региона, название региона, название города, почтовый индекс, широту и долготу по IP-адресу.
👍16
💬 Есть ли среди вас цифровые кочевники?

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

❤️ — да, я
👍 — у меня всё по старинке

#интерактив
👍8444🤔5🥱2
Контроль времени обработки кода в PHP с помощью Time Warden

Time Warden — это легкая PHP-библиотека, позволяющая отслеживать время обработки задач и предпринимать действия при превышении заданных порогов времени выполнения.

Эта библиотека имеет отличную документацию в readme проекта, которая вкратце предлагает следующие возможности:

🔸Мониторинг времени обработки критических задач при разработке и отладке
🔸Реактивные действия при превышении времени (миллисекунды, секунды, минуты и часы)
🔸Отладочный вывод времени выполнения
🔸Измерение времени выполнения отдельной задачи и групп задач
🔸Библиотека, не зависящая от фреймворка, которую можно использовать с Laravel, Symfony, автономно и т.д.
🔸PHP 8.2+
🔥74👍1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
😌 5 техник для снятия стресса на работе

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

🔗 Читать статью
🔗 Зеркало
👍2🔥2😁2
#дайджест новостей по PHP за неделю:

🔎Выпущены PHP 8.2.20 и PHP 8.3.8! — Команда разработчиков PHP объявляет о выходе PHP 8.2.20 и PHP 8.3.8. Это релиз безопасности.

🔎Обновление Xdebug: май 2024 года — В этом ежемесячном обновлении рассказывается о том, что произошло с разработкой Xdebug за прошедший месяц.

🔎Использование замыкания в updateOrInsert() в Laravel 11.10 — На этой неделе команда Laravel выпустила версию 11.10, в которой появилась возможность передавать замыкание в updateOrInsert, поддержка мягко удаленных моделей с явной привязкой модели маршрута и многое другое.

🔎Неделя Symfony #910 (3-9 июня 2024 года) — На этой неделе были выпущены поддерживающие версии Symfony 5.4.40, 6.4.8, 7.0.8 и 7.1.1. Кроме того, организовали конференцию SymfonyOnline June 2024 и объединили первые функции Symfony 7.2, которая выйдет в конце ноября 2024 года.
👍61😢1
Архитектурное тестирование в Laravel с помощью Pest

Статья посвящена архитектурному тестированию в Laravel с использованием тестового фреймворка Pest. В статье рассматриваются следующие ключевые моменты:

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

Знакомство с Pest: Pest представляет собой современный и упрощенный тестовый фреймворк для PHP, который фокусируется на простоте и удобстве использования. В статье дается краткое введение в Pest и его особенности.

Настройка Pest для Laravel: Пошаговое руководство по установке и настройке Pest в Laravel-проекте. Включает команды для установки и основные конфигурации, необходимые для начала работы.

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

Практические советы и рекомендации: Предоставляются полезные советы по написанию и поддержке архитектурных тестов, а также рекомендации по улучшению качества кода и архитектуры проекта.
👍3
⚛️ 6 самых важных шаблонов проектирования в React

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

👉 Читать статью
👉 Зеркало
Работа с новой архитектурой в Laravel 11

Основная «киллер-фича» фреймворка Laravel версии 11 — «плоский код». Под капот убрано всё, что большинством разработчиков не используется и, по сути, является «мусором». А также убраны некоторые действительно полезные вещи.

Здесь показано что куда делось и как улучшить взаимодействие с новой архитектурой.
👍6🌚1
LaraPackages.com

Удобный каталог полезных инструментов Laravel.
👍122
Каковы основные компоненты Symfony и как они взаимодействуют друг с другом?

Symfony состоит из нескольких ключевых компонентов, которые взаимодействуют между собой, создавая надежный PHP-фреймворк. Компонент HttpFoundation заменяет глобальные переменные PHP объектно-ориентированным слоем, что позволяет проще работать с HTTP-запросами и ответами. Routing управляет генерацией и подбором URL, а EventDispatcher позволяет разделить код с помощью слушателей событий. DependencyInjection обеспечивает функциональность контейнера сервисов, способствуя многократному использованию и тестированию кода.

HttpKernel выступает в качестве ядра, используя другие компоненты для обработки запросов и генерации ответов. Он использует EventDispatcher для отправки нескольких событий во время обработки запроса, что позволяет внедрять пользовательское поведение в различных точках. Например, он отправляет событие 'kernel.request', которое может быть использовано Routing для сопоставления запроса с маршрутом и определения контроллера.

Компонент Twig — это шаблонизатор Symfony, взаимодействующий с HttpKernel для рендеринга представлений. Doctrine ORM взаимодействует с базой данных, обеспечивая персистентность данных.

Security обеспечивает аутентификацию и авторизацию, тесно взаимодействуя с HttpKernel и EventDispatcher. Translation помогает в интернационализации, а Validator обеспечивает соблюдение правил проверки объектов.

#вопросы_с_собеседований
🔥7👍5🤔1
Гайд по валидации в Laravel

Статья посвящена теме валидации данных в Laravel. Она объясняет, как использовать встроенные возможности Laravel для проверки данных, поступающих от пользователей, чтобы обеспечить их корректность и соответствие определённым правилам.

Основные моменты:

✔️Основы валидации в Laravel: Описаны основные принципы и подходы к валидации данных в Laravel, включая использование встроенных методов и правил.

✔️Создание правил валидации: Рассматривается, как создавать и применять правила валидации в контроллерах и формах.

✔️Сообщения об ошибках: Обсуждается, как настраивать сообщения об ошибках валидации, чтобы сделать их более понятными для пользователей.

✔️Кастомные правила валидации: Описывается процесс создания кастомных правил валидации для специфических требований приложения.

✔️Примеры использования: Приводятся примеры кода и сценарии, демонстрирующие различные аспекты валидации данных в Laravel.
👍2
Функция Str::slug в Laravel предназначена для создания «слагов» из строк. «Слаг» — это URL-подобная строка, которая используется для идентификации статьи или страницы на сайте. Слаг обычно состоит из слова или фразы, разделенной дефисами.

Итак, функция Str::slug превращает строку в «слаг», используя заданные параметры. Например, для строки «Это пример строки для Slug» функция вернет «ce-priklad-ryadka-dlya-slug». Вот несколько примеров использования функции Str::slug в Laravel:

В первом примере функция Str::slug берет строку $title и превращает ее в «слаг» с дефисами как разделителями. Во втором примере разделитель изменен на подчеркивание.
🥱13👍6🤔42🔥1
Как делиться своими TwigComponent с командой

Здесь рассматриваются шаги и лучшие практики по созданию, документированию и распространению ваших Twig-компонентов, чтобы сделать их доступными для всей команды разработчиков.
#дайджест #phpdevjob

Вакансии PHP разработчиков уровня Junior

▪️PHP-developer
Удаленка. Офис в Москве. UREMONT — агрегатор страхования
Подробнее

▪️PHP-программист
Москва. Флекскор — система управления сайтами
Подробнее

Вакансии PHP разработчиков уровня Middle

▪️PHP-разработчик
Москва. Д-проджект — создание и продвижение веб-проектов
Подробнее

▪️Fullstack разработчик
Томск. BlaBlaCar — международный онлайн-сервис поиска автомобильных попутчиков
Подробнее

Вакансии PHP разработчиков уровня Senior

▪️Backend developer
Москва. PUSK — IT, интернет-маркетинг
Подробнее

▪️Backend-разработчик
Удаленка. Офис в Нижнем Новгороде. АДЕПТ — разработчик ПО для строительной отрасли
Подробнее

Понравились вакансии?
❤️ — да
🤔 — нет
🤔5👍1