TG Telegram Group Link
Channel: Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
Back to Bottom
Proglib запускает канал Азбука айтишника

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

У нас есть рубрики:
База — в ней рассказываем про термины из IT простым языком
Проект — объясняем, из чего состоят айтишные проекты и сколько они могут стоить
Психология айтишника — тут говорим про софт-скиллы, особенности работы и взаимодействия

👉Подписывайтесь!
Please open Telegram to view this post
VIEW IN TELEGRAM
Пакет для инвалидации КЭШа на PHP

Здесь описывается система кеширования данных в PHP с использованием классов и алгоритмов для эффективного управления и обновления кеша. Рассматриваются два основных сценария: кеширование до события изменения (event-based caching) и кеширование на время (lifetime-based caching). Приводится подробный алгоритм и блок-схема для реализации кеширования до события изменения, а также рассматривается проблема дочерних вызовов, когда изменение одного элемента кеша должно обновлять все зависимые от него элементы.
Самые полезные каналы для программистов в одной подборке!

Сохраняйте себе, чтобы не потерять 💾

🔥Для всех

Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы

🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion

#️⃣C#

Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel

☁️DevOps

Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования

🐘PHP

Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты

🐍Python

Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты

Java

Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков

👾Data Science

Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту

🦫Go

Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go

🧠C++

Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++

💻Другие каналы

Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности

📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈

Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT

Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *

* Организация Meta запрещена на территории РФ
Как использовать Eager loading в Laravel?

Eager loading в Laravel — это способ предварительной загрузки связанных моделей, чтобы уменьшить количество запросов к базе данных и повысить производительность приложения. При использовании ленивой загрузки (lazy loading) связанные данные загружаются только тогда, когда к ним обращаются, что может привести к множественным запросам к базе данных (проблема N+1 запросов). В то время как eager loading загружает все необходимые данные заранее, используя объединение (join) или отдельные запросы с использованием ключевого слова with.

Eager loading помогает значительно снизить нагрузку на базу данных и ускорить работу приложения за счет уменьшения количества выполняемых запросов.

#вопросы_с_собеседований
Новое в Symfony 7.1

Улучшения в WebProfiler

WebProfiler — это инструмент, который помогает разработчикам анализировать и отлаживать свои приложения. В Symfony 7.1 WebProfiler получил несколько значительных улучшений:

Более удобный интерфейс:
🔸Улучшен дизайн панели инструментов для упрощения навигации и доступа к нужной информации.
🔸Визуальные улучшения делают профайлер более приятным и интуитивно понятным в использовании.

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

Гибкая настройка:
🔸Возможность настройки панелей и отображаемых данных под конкретные нужды проекта.

Улучшенный аутентификатор с токенами доступа

В Symfony 7.1 представлено улучшение в системе аутентификации с использованием токенов доступа. Основные изменения:

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

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

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

Маршрутизация с параметрами

Одной из интересных новинок в Symfony 7.1 является улучшенная работа с параметрами маршрутов. Теперь параметры маршрутов могут быть более гибко управляемыми и настроенными:

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

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

Оптимизация производительности:
Улучшены внутренние механизмы маршрутизации для повышения производительности обработки запросов.
«Как мы повысили продуктивность написания админ-панелей, используя Filament»

Здесь показан реальный опыт разработки админ-панелей (CMS) с использованием Filament — чрезвычайно мощной библиотеки Fullstack-компонентов, основанной на фреймворке Laravel и технологии Livewire.

Laravel используется в качестве основного фреймворка для разработки бэкенда всех проектов, и однажды возник вопрос: какое решение для админ-панелей выбрать? Выбор пал на Filament — тогда еще сырой, маленькой, почти незадокументированной open-source админке.

Как показало время, выбор оказался правильным.

Важно подметить, что выбор делался достаточно долго, особенно между Filament и другой, на первый взгляд, более популярной среди русскоязычного сообщества Laravel, библиотекой — Orchid (отечественная админ-панель с философией DIY).

Работа над несколькими проектами на Orchid велась параллельно с проектами на Filament, и в итоге выбор был сделан в пользу последнего. В этой статье будут изложены причины, по которым Filament считается лучшим выбором для разработки CMS.
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

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

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
«Primitive Obsession» (Примитивная Одержимость)

Автор делится мнением, почему лучше использовать объекты ValueObject вместо bool, int, string, float, array.
SPX

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#интерактив
Контроль времени обработки кода в PHP с помощью Time Warden

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

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

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

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

🔗 Читать статью
🔗 Зеркало
#дайджест новостей по 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 года.
HTML Embed Code:
2025/07/07 03:22:28
Back to Top