❗Директива
В нашем примере директива
@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
🔎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, как с точки зрения кода, так и практической настройки.
Чтобы повысить производительность проектов на Laravel, разработчикам стоит использовать многогранный подход к оптимизации. Здесь рассмотрены ключевые стратегии, которые помогают ускорить работу приложений на Laravel, как с точки зрения кода, так и практической настройки.
DEV Community
Laravel performance optimization strategy: from source code analysis to actual practice
Laravel is a powerful and flexible PHP framework, but to achieve optimal performance in real-world...
1🥱8👍2❤1
CPX
Это как npx но для PHP. Этот инструмент позволяет выполнить любую команду из любого пакета Composer, даже если он не установлен в вашем проекте.
Это как npx но для PHP. Этот инструмент позволяет выполнить любую команду из любого пакета Composer, даже если он не установлен в вашем проекте.
GitHub
GitHub - imliam/cpx: Run any command from any composer package, even if it's not installed in your project.
Run any command from any composer package, even if it's not installed in your project. - imliam/cpx
🔥15
Forwarded from Библиотека собеса по PHP | вопросы с собеседований
Что такое TDD?
TDD (Test-Driven Development) — это методология разработки программного обеспечения, в которой разработка программы начинается с написания тестов, которые определяют желаемое поведение программы. Затем код разрабатывается и изменяется таким образом, чтобы эти тесты проходили успешно.
Процесс TDD обычно состоит из трех шагов, известных как «Красный», «Зеленый» и «Рефакторинг»:
Красный (Red): Сначала пишутся тесты для новой функциональности или для исправления ошибок. Поскольку этот этап выполняется до написания реализации, все тесты должны завершаться неудачей (иметь статус «красный»).
Зеленый (Green): Затем пишется минимальное количество кода, необходимое для прохождения тестов. Цель — сделать все тесты прошедшими (иметь статус «зеленый»).
Рефакторинг (Refactor): После того как все тесты прошли успешно, код можно улучшить, переработав его для улучшения структуры, производительности и т. д., сохраняя при этом поведение программы неизменным. Это позволяет улучшать код без риска нарушения его функциональности.
TDD (Test-Driven Development) — это методология разработки программного обеспечения, в которой разработка программы начинается с написания тестов, которые определяют желаемое поведение программы. Затем код разрабатывается и изменяется таким образом, чтобы эти тесты проходили успешно.
Процесс TDD обычно состоит из трех шагов, известных как «Красный», «Зеленый» и «Рефакторинг»:
Красный (Red): Сначала пишутся тесты для новой функциональности или для исправления ошибок. Поскольку этот этап выполняется до написания реализации, все тесты должны завершаться неудачей (иметь статус «красный»).
Зеленый (Green): Затем пишется минимальное количество кода, необходимое для прохождения тестов. Цель — сделать все тесты прошедшими (иметь статус «зеленый»).
Рефакторинг (Refactor): После того как все тесты прошли успешно, код можно улучшить, переработав его для улучшения структуры, производительности и т. д., сохраняя при этом поведение программы неизменным. Это позволяет улучшать код без риска нарушения его функциональности.
🔥10👍5
⚙️ Подпишись на нашу еженедельную email-рассылку, чтобы быть в курсе последних открытий и тенденций в мире бэкенда.
В еженедельных письмах ты найдешь:
● Языки программирования и фреймворки для бэкенда
● Архитектура и проектирование серверных приложений
● Базы данных и управление данными
● Безопасность и защита данных
● Облачные технологии и DevOps
● API и интеграции
● Тестирование и отладка
● Инструменты и утилиты для бэкенд-разработчиков
● Лучшие практики и паттерны проектирования
👉Подписаться👈
В еженедельных письмах ты найдешь:
● Языки программирования и фреймворки для бэкенда
● Архитектура и проектирование серверных приложений
● Базы данных и управление данными
● Безопасность и защита данных
● Облачные технологии и DevOps
● API и интеграции
● Тестирование и отладка
● Инструменты и утилиты для бэкенд-разработчиков
● Лучшие практики и паттерны проектирования
👉Подписаться👈
👾1
Новое в Symfony 7.2
🔸Новый линтер для проверки переводов —
🔸Улучшена работа с составными (compound) ограничениями для валидации. Compound constraint позволяет объединять несколько ограничений в одно, чтобы повторно использовать его в разных частях приложения. Например, можно создать ограничение
🔸Добавлен новый атрибут
🔸Улучшена работа с полем
Когда choice_lazy включен, список значений остается пустым до тех пор, пока они не понадобятся, что позволяет избежать ненужных запросов к базе данных и снижает нагрузку. При необходимости значения подгружаются и кэшируются.
Примеры использования лежат по ссылкам👆
🔸Новый линтер для проверки переводов —
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
Forwarded from Азбука айтишника
💣 Токсичный разработчик: гений или бомба замедленного действия?
Токсичный разработчик — это специалист, с которым крайне некомфортно работать. Разбираемся в статье — как к нему относиться:
🔗 Ссылка
Токсичный разработчик — это специалист, с которым крайне некомфортно работать. Разбираемся в статье — как к нему относиться:
🔗 Ссылка
🤔7👍2
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
🌚2🥰1
Создание HTTP-потоков в PHP с помощью Symfony HTTP Client и Ollama API
HTTP-стриминг позволяет постепенно обрабатывать данные по мере их поступления, что особенно удобно для работы с большими или непрерывными потоками, не дожидаясь завершения всего ответа. Такой подход полезен для получения обновлений в реальном времени и оптимизации работы ресурсов, особенно при работе с API и платформами ИИ, которые передают большие объемы данных.
Чтобы реализовать стриминг данных в PHP с использованием Symfony HTTP Client, нужно:
🔹 Настроить HTTP клиент и задать конечную точку API.
🔹 Отправить запрос с параметрами, указывая модель ИИ и текстовый запрос.
🔹 Проверить статус ответа перед обработкой данных, чтобы убедиться в успешности запроса.
🔹 Использовать возможность Symfony получать ответ порциями, что позволяет обрабатывать каждый фрагмент данных сразу по мере поступления.
Этот метод особенно удобен для потоковых API, где каждый фрагмент содержит данные о модели, времени создания ответа и сгенерированный текст. Таким образом, обработка данных проходит быстрее и эффективнее, что особенно полезно для получения ответов в реальном времени.
HTTP-стриминг позволяет постепенно обрабатывать данные по мере их поступления, что особенно удобно для работы с большими или непрерывными потоками, не дожидаясь завершения всего ответа. Такой подход полезен для получения обновлений в реальном времени и оптимизации работы ресурсов, особенно при работе с API и платформами ИИ, которые передают большие объемы данных.
Чтобы реализовать стриминг данных в PHP с использованием Symfony HTTP Client, нужно:
🔹 Настроить HTTP клиент и задать конечную точку API.
🔹 Отправить запрос с параметрами, указывая модель ИИ и текстовый запрос.
🔹 Проверить статус ответа перед обработкой данных, чтобы убедиться в успешности запроса.
🔹 Использовать возможность Symfony получать ответ порциями, что позволяет обрабатывать каждый фрагмент данных сразу по мере поступления.
Этот метод особенно удобен для потоковых API, где каждый фрагмент содержит данные о модели, времени создания ответа и сгенерированный текст. Таким образом, обработка данных проходит быстрее и эффективнее, что особенно полезно для получения ответов в реальном времени.
2❤5👍1
Привет, друзья! 👋
Мы готовим статью об ИИ-инструментах для программирования в 2024 году и хотим услышать ваше мнение! 🤖💻 Поделитесь своим опытом и помогите нам сделать материал еще полезнее. Самые интересные ответы войдут в статью! 🏆
Мы готовим статью об ИИ-инструментах для программирования в 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
Какой аспект разработки, по вашему мнению, больше всего выигрывает от использования ИИ? 🚀
Anonymous Poll
45%
Автодополнение кода
19%
Генерация кода с нуля
16%
Отладка и поиск ошибок
12%
Оптимизация существующего кода
8%
Другое (поделитесь в комментариях)