Библиотека пхпшника | 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
Директива @env_required() позволяет проверять, что переменная среды установлена и имеет значение, отличное от null. Она может быть полезна для обеспечения того, чтобы приложение работало правильно только при наличии определенных переменных среды.

В нашем примере директива @env_required() используется для проверки переменной среды APP_KEY. Если переменная не установлена, будет выброшено исключение.
5🔥2😁2🤔1
Привет, друзья! 👋

Мы готовим статью о секретах мастерства в программировании и хотим узнать ваше мнение! 💻

Какие качества, по вашему мнению, отличают действительно выдающегося программиста? 🏆
🥱4👍1👏1
Очереди задач: простой способ пакетной обработки

Как работает очередь задач на примере создания миниатюр для видео.

Цель: после загрузки видео оно должно высветиться в виде миниатюры
👍7🔥3🥰2
#дайджест новостей по PHP за неделю:

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

🔎PHP 8.2.25 и PHP 8.3.13 выпущены! — Команда разработчиков PHP объявляет о скором выходе PHP 8.2.25 и PHP 8.3.13. Это релиз, исправляющий ошибки. Всем пользователям PHP 8.3 рекомендуется обновиться до этой версии.

🔎Выпущен Symfony 7.2.0-BETA1

🔎Выпущен Symfony 7.1.6
1👍4
Стратегия оптимизации производительности Laravel: от анализа исходного кода к реальной практике

Чтобы повысить производительность проектов на Laravel, разработчикам стоит использовать многогранный подход к оптимизации. Здесь рассмотрены ключевые стратегии, которые помогают ускорить работу приложений на Laravel, как с точки зрения кода, так и практической настройки.
1🥱8👍21
CPX

Это как npx но для PHP. Этот инструмент позволяет выполнить любую команду из любого пакета Composer, даже если он не установлен в вашем проекте.
🔥15
Что такое TDD?

TDD (Test-Driven Development) — это методология разработки программного обеспечения, в которой разработка программы начинается с написания тестов, которые определяют желаемое поведение программы. Затем код разрабатывается и изменяется таким образом, чтобы эти тесты проходили успешно.

Процесс TDD обычно состоит из трех шагов, известных как «Красный», «Зеленый» и «Рефакторинг»:

Красный (Red): Сначала пишутся тесты для новой функциональности или для исправления ошибок. Поскольку этот этап выполняется до написания реализации, все тесты должны завершаться неудачей (иметь статус «красный»).

Зеленый (Green): Затем пишется минимальное количество кода, необходимое для прохождения тестов. Цель — сделать все тесты прошедшими (иметь статус «зеленый»).

Рефакторинг (Refactor): После того как все тесты прошли успешно, код можно улучшить, переработав его для улучшения структуры, производительности и т. д., сохраняя при этом поведение программы неизменным. Это позволяет улучшать код без риска нарушения его функциональности.
🔥10👍5
⚙️ Подпишись на нашу еженедельную email-рассылку, чтобы быть в курсе последних открытий и тенденций в мире бэкенда.

В еженедельных письмах ты найдешь:
● Языки программирования и фреймворки для бэкенда
● Архитектура и проектирование серверных приложений
● Базы данных и управление данными
● Безопасность и защита данных
● Облачные технологии и DevOps
● API и интеграции
● Тестирование и отладка
● Инструменты и утилиты для бэкенд-разработчиков
● Лучшие практики и паттерны проектирования

👉Подписаться👈
👾1
Новое в Symfony 7.2

🔸Новый линтер для проверки переводовlint:translations. В отличие от существующей команды lint:xliff, которая проверяет только XLIFF-файлы, lint:translations анализирует все переводы, независимо от формата. Эта команда полезна для поиска ошибок в синтаксисе ICU MessageFormat, который может быть сложным (например, легко забыть закрывающую фигурную скобку или форму для множественного числа).

🔸Улучшена работа с составными (compound) ограничениями для валидации. Compound constraint позволяет объединять несколько ограничений в одно, чтобы повторно использовать его в разных частях приложения. Например, можно создать ограничение MatchPasswordPolicy для проверки пароля, включающее минимальную длину, отсутствие компрометации, наличие заглавных букв и другие правила. Это удобно применять к полям, требующим одинаковой проверки, как в классе пользователя User.

🔸Добавлен новый атрибут #[WhenNot], который позволяет исключить сервис из определенных окружений конфигурации. Этот атрибут дополняет существующий #[When], который регистрирует сервисы только для указанных окружений, как dev. Новый атрибут упрощает настройку, если нужно исключить сервисы из нескольких окружений (например, из dev и test), без необходимости прописывать #[When] для каждого окружения.

🔸Улучшена работа с полем EntityType в формах для повышения производительности при работе с большими наборами данных. Теперь добавлена возможность использовать опцию choice_lazy, которая включает ленивую загрузку значений с помощью нового LazyChoiceLoader.

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

Примеры использования лежат по ссылкам👆
🔥4👍3
💣 Токсичный разработчик: гений или бомба замедленного действия?

Токсичный разработчик — это специалист, с которым крайне некомфортно работать. Разбираемся в статье — как к нему относиться:

🔗 Ссылка
🤔7👍2
💬Данные в laravel загружаются быстрее, если целевое значение является целым числом.

Используйте 𝘄𝗵𝗲𝗿𝗲𝗜𝗻𝘁𝗲𝗴𝗲𝗿𝗜𝗻𝗥𝗮𝘄() вместо метода 𝘄𝗵𝗲𝗿𝗲𝗜𝗻(), чтобы быстрее загружать данные, когда целевое значение является целым числом.
👾5👍1🤔1🌚1
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

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

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
🌚2🥰1
Создание HTTP-потоков в PHP с помощью Symfony HTTP Client и Ollama API

HTTP-стриминг позволяет постепенно обрабатывать данные по мере их поступления, что особенно удобно для работы с большими или непрерывными потоками, не дожидаясь завершения всего ответа. Такой подход полезен для получения обновлений в реальном времени и оптимизации работы ресурсов, особенно при работе с API и платформами ИИ, которые передают большие объемы данных.

Чтобы реализовать стриминг данных в PHP с использованием Symfony HTTP Client, нужно:

🔹 Настроить HTTP клиент и задать конечную точку API.
🔹 Отправить запрос с параметрами, указывая модель ИИ и текстовый запрос.
🔹 Проверить статус ответа перед обработкой данных, чтобы убедиться в успешности запроса.
🔹 Использовать возможность Symfony получать ответ порциями, что позволяет обрабатывать каждый фрагмент данных сразу по мере поступления.

Этот метод особенно удобен для потоковых API, где каждый фрагмент содержит данные о модели, времени создания ответа и сгенерированный текст. Таким образом, обработка данных проходит быстрее и эффективнее, что особенно полезно для получения ответов в реальном времени.
25👍1
Привет, друзья! 👋

Мы готовим статью об ИИ-инструментах для программирования в 2024 году и хотим услышать ваше мнение! 🤖💻 Поделитесь своим опытом и помогите нам сделать материал еще полезнее. Самые интересные ответы войдут в статью! 🏆
Какой ИИ-инструмент для программирования вы считаете самым полезным и почему? 🛠️
Anonymous Poll
13%
GitHub Copilot
52%
ChatGPT
6%
Claude
10%
Codeium
5%
Локальные LLM
27%
Не пользуюсь ИИ
5%
Другой (укажите в комментариях)
😁7
Как изменилась ваша продуктивность после начала использования ИИ-инструментов в разработке? ⏱️
Anonymous Poll
13%
Значительно выросла (более чем на 50%)
23%
Умеренно выросла (20-50%)
30%
Незначительно выросла (до 20%)
28%
Не изменилась
6%
Снизилась
👍2👏2👾1