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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Download Telegram
Если бы у вас была возможность лично выбрать одну новую фишку, которая появится в следующей версии языка, что бы это было?⬇️⬇️⬇️
📨 Как работают очереди и брокеры сообщений

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

1️⃣ Пользователь загружает большой файл для обработки.
2️⃣ Веб-сервер принимает файл и создает задание.
3️⃣ Задание добавляется в очередь задач, а файл загружается в объектное хранилище.
4️⃣ Позже рабочий процесс забирает задания из очереди одно за другим и обрабатывает их, получая файл из хранилища.

Это самый простой пример. Очереди сообщений можно использовать для:

✔️ Планирования и управления фоновыми задачами.
✔️ Распределения задач между несколькими рабочими процессами.
✔️ Управления сервисами подписки и уведомлений.
✔️ Буферизации данных.
✔️ Повторных попыток обработки платежей и многого другого.

Подробнее читайте в нашем гайде 👇

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

🔎PHP 8.4.0 RC2 доступен для тестирования — Команда PHP рада сообщить о выпуске PHP 8.4.0, RC2. Это второй релиз-кандидат, продолжающий цикл выпуска PHP 8.4

🔎Выпущен CakePHP 5.1.1 — Улучшения: Исправлена регрессия в генерации мета-тегов. Исправлены ошибки отсутствия метода в приложениях, использующих только консоль. Добавлен интерфейс EventAwareApplicationInterface и многое другое!

🔎Laravel 11.26 выпущен — Команда Laravel выпустила версию 11.26, в которой появилась возможность изящной остановки пула процессов, использование Enums при определении Rate Limiting, команда Artisan для создания Job Middleware и многое другое.

🔎Неделя Symfony #928 (7-13 октября 2024 года) — На этой неделе разработка была сосредоточена на Symfony 7.2, так как продолжалось слияние твиков и функций в преддверии его релиза в конце ноября 2024 года.
👍2
Понимание разницы между pluck() и select() в Laravel 11

В Laravel для работы с данными широко используются методы pluck() и select(). Несмотря на внешнее сходство, они выполняют разные задачи.

Основные различия между pluck() и select()

✔️Назначение:

pluck() используется для извлечения одного атрибута или пары ключ-значение.
select() позволяет получить несколько атрибутов для каждого элемента коллекции.

✔️Возвращаемая структура:

pluck() возвращает плоский массив значений или ассоциативный массив при использовании второго ключа.
select() возвращает коллекцию массивов с выбранными ключами.

Когда использовать каждый метод?

pluck() подходит, если требуется извлечь значения одного ключа или работать с вложенными данными.
select() лучше использовать, когда нужно получить несколько полей из каждого элемента коллекции.
🔥6🥱6👾1
Расскажите о шаблонах GRASP.

Шаблоны GRASP (General Responsibility Assignment Software Patterns) — это набор принципов проектирования объектно-ориентированного кода, которые помогают определить, какие классы или объекты будут выполнять конкретные задачи и ответственности. Они помогают улучшить структуру кода, делая его более гибким, читаемым и поддерживаемым.

Ниже представлены основные шаблоны GRASP:

1. Expert (Эксперт) — данный шаблон назначает ответственность объекту, который обладает наиболее полной информацией для выполнения определенной задачи. Таким образом, эксперт в данном контексте является наиболее квалифицированным объектом для выполнения определенной операции.

2. Creator (Создатель) — данный шаблон определяет, что объект должен быть ответственным за создание других объектов. То есть, если объект А тесно связан с объектом В и может быть считаться его создателем инициализации, то объект А должен брать на себя ответственность за создание объекта В.

3. Controller (Контроллер) — данный шаблон назначает объекту ответственность контроля за интерфейсом пользователя и управления потоком данных. Контроллер обрабатывает пользовательский ввод и инициирует действия в системе.

4. Low Coupling (Низкая связанность) — данный шаблон подразумевает, что объект должен иметь наименьшую возможную зависимость от других объектов. Это достигается путем использования абстракций и интерфейсов, чтобы объекты могли взаимодействовать, не зная подробности друг о друге.

5. High Cohesion (Высокая связность) — данный шаблон подразумевает, что каждый класс должен представлять собой логическую единицу функциональности. Класс должен иметь одну ответственность и хорошо определенный смысл.

6. Indirection (Индиректирование) — данный шаблон назначает объекту посредническую роль для связи между другими объектами. То есть, объект А не обращается напрямую к объекту В, а связь между ними возникает через объект-посредник.

7. Polymorphism (Полиморфизм) — данный шаблон направлен на использование полиморфизма в объектно-ориентированном программировании. Полиморфизм позволяет работать с разными типами объектов через один и тот же интерфейс, что делает систему более гибкой и расширяемой.

#вопросы_с_собеседований
👍92
Распространенные ошибки PHP: Решение часто встречающихся проблем

Некоторые ошибки просты и легко устранимы, но другие могут быть немного сложнее. Здесь рассказано про некоторые из наиболее распространенных ошибок и предложены решения, которые помогут вам быстро их устранить.
🥱7👍4👏1🌚1
💻В отношениях «многие-ко-многим» можно добавить операторы where в таблицу pivot, используя метод wherePivot.
🥱162👍2👾1
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

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

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👍3
Вакансии «Библиотеки программиста» — ждем вас в команде!

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

Подробности тут

Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴

Ждем ваших откликов 👾
👍1
Использование Twig для визуализации Markdown

Шаблонизатор Twig можно использовать для генерации не только HTML, но и других форматов контента, таких как Markdown, JSON и простой текст. Этот подход позволяет создавать универсальные решения для работы с данными в различных каналах.

Пример демонстрирует, как с помощью Symfony HTTP Client получить данные о рецепте с внешнего API и вывести их в формате Markdown. В статье подробно описаны шаги по интеграции нескольких компонентов Symfony: HTTP-клиента для работы с API и Twig для обработки и вывода данных.
👍5
💬 Вы когда-нибудь ощущали, что не заслуживаете той зарплаты, которую получаете?

❤️ — да, знакомо это чувство
👍 — я считаю, что получаю ровно столько, сколько заслуживаю
🤔 — мне наоборот кажется, что мне недостаточно много платят

#интерактив
🤔10937👍19🥰2😢1
Reli

Это профилировщик выборки или профилировщик памяти, написанный на PHP, который считывает информацию о запуске виртуальной машины PHP извне процесса. Вы можете обнаружить узкие места производительности или утечки памяти в своих скриптах, не меняя целевой скрипт и не загружая расширения.
👍8
⚡️Разыгрываем флагманский смартфон

«Библиотека программиста» разыгрывает один из трех смартфонов на выбор:
🔹Samsung Galaxy S24 Ultra на 1 ТБ
🔹Xiaomi 14 Ultra на 512 ГБ
🔹iPhone 16 Pro Max на 512 ГБ

🔥 А еще 99 участников розыгрыша получат скидку 50% на наш курс Базовые модели ML и приложения!
Промокод будет действителен до 20 ноября.

Условия просты:
→ подписаться на Библиотека нейротекста
→ подписаться на Библиотека нейрозвука
→ подписаться на Библиотека нейрокартинок
→ нажать на кнопку «Участвовать» под этим постом

Итоги появятся 30 октября в 20:00 по московскому времени в нашем канале Библиотека программиста. Затем мы свяжемся с победителем, который сам выберет смартфон. Тем, кто получит промокод, мы вышлем его в течение недели после окончания розыгрыша.

⚠️ Убедитесь, что вам можно написать в личные сообщения или следите за результатами — если мы не сможем с вами связаться, то не сможем и отправить приз. Доставить мы можем только в города России и Беларуси.
Автоматизация извлечения переводов в Laravel с помощью пользовательской команды Artisan

Здесь рассказано о создании пользовательской команды Artisan, которая просканирует вашу кодовую базу Laravel, извлечет весь текст, используемый в помощнике __(), и выведет переводы в JSON-файл для конкретной локали.
👍7🤔3🥱1
🧪 Чем заменить Postman: 5 отличных инструментов для разработки API

Postman долгое время был основным инструментом для разработки и тестирования API, но сейчас для большинства разработчиков его ограничения стали перевешивать преимущества. Рассмотрим альтернативные инструменты, которые могут предложить больше возможностей, чем Postman — даже в бесплатной версии.

👉Читаем здесь
🥱8🎉4👍2