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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Download Telegram
Создание докер-образов PHP с помощью Wolfi-OS

Основные проблемы с официальными образами Docker PHP заключаются в их размере, длительном времени сборки из-за необходимости компиляции расширений и сложностях с созданием мультиархитектурных образов.

Для решения этих проблем предлагается использовать Wolfi, дистрибутив Linux, специально оптимизированный для запуска в контейнерах, который предоставляет предварительно скомпилированные пакеты, минимизируя время сборки и размер образа.
🔥7
Какой шаблонизатор поддерживает Symfony?

Шаблонизатором по умолчанию в Symfony является Twig. Мы также можем использовать обычный PHP-код. Twig — это актуальный и современный шаблонизатор для PHP.

Преимущества Twig:

Быстрота: Накладные расходы на регулярный PHP-код были сведены к минимуму, так как Twig помогает компилировать шаблоны в простой оптимизированный PHP-код.

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

Гибкость: Twig позволяет разработчику задавать пользовательские теги и фильтры и создавать свой DSL, что разрешается гибким лексером и парсером twig.

#вопросы_с_собеседований
🔥4🥱3👍1🌚1
Resonance

Фреймворк, специально разработанный для создания веб-приложений с возможностями искусственного интеллекта и ML. Он основан на Swoole и имеет встроенные веб-серверы и серверы WebSocket.
🌚6👍3🤔2
😎 А если бы вы не стали разработчиком, то кем хотели бы быть?

Давайте пофантазируем. Пишите свои варианты в комментарии👇
1
Избегание ловушек при использовании Doctrine ORM: Влияние type hint'a

Описывается случай, когда тип, указанный в определении колонки, не совпадает с типом свойства в сущности, но Doctrine не выдаёт предупреждения об этом.

Для демонстрации проблемы представлен пример сущности Book, в которой тип свойства price — float, а тип колонки в базе данных — decimal. В таком случае, при использовании Doctrine, при изменении свойства price не всегда корректно определяется факт изменения значения, что может приводить к неожиданным запросам на обновление в базе данных.

Статья объясняет механизм работы Doctrine, особенно уделяя внимание классу UnitOfWork, который отслеживает изменения сущностей. Проблема возникает из-за того, что Doctrine использует операцию сравнения по идентичности при определении изменилось ли значение свойства. В результате, даже незначительные изменения могут привести к неожиданным запросам на обновление.

Для избежания таких проблем предлагается несколько подходов, таких как синхронизация типов колонок и свойств сущностей, или допуск автоматического вывода типов на основе другого.
👍5
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🎭 7 типов программистов, которых вы встретите на собеседовании

Осторожно! Данная статья носит шуточный характер и не преследует цели обидеть кого-либо. Все ситуации выдуманы, а совпадения — случайны.

🔗 Читать статью
🔗 Зеркало
🥱9👍6👏1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🥑 Подборка лучших статей «Библиотеки программиста» за апрель: сохраняй в заметки, чтобы не пропустить #самыйсок

🐛 7 признаков неопытного программиста
🐍📖 ТОП-10 книг по Python для начинающих программистов в 2024 году
✍️ Как написать отличную документацию
🐍🛠️ 32 инструмента для Python, которые помогут писать профессиональный код
🤖👾 Как злоумышленники взламывают LLM: 7 ключевых стратегий
🤖✍️ Как работают LLM: простое объяснение через аналогию с кулинарией
⚙️ Названия веток и комментарии к коммитам в Git: лучшие практики
🙅‍♂️ Дискриминация на работе: в чем проявляется и что делать, если вы с ней столкнулись
🧑‍💻 Как я входил в IT: опыт подписчиков «Библиотеки программиста»
🛠️ Что такое прогрессивные веб-приложения
🌐 Использование глобальной контрольной группы на практике: тонкости, нюансы, подводные камни
🤖🛠️ 4 полезных инструмента для работы с ИИ: RAGFlow, The Pipe, UFO и SWE-agent
▶️ Как оживить фронтенд: 8 лучших JS-библиотек для анимации
🤺 Искусство оскорблять: как поставить коллегу на место и отбить желание работать над проектом
🎸 10 причин, по которым стоит выбрать Django вместо FastAPI
🐍 10 основных ошибок начинающих Python-разработчиков
🏃 🏃 Самоучитель по Go для начинающих. Часть 11. Обработка ошибок. Паника. Восстановление. Логирование
🤖💣 ИИ-ассистенты разработчика: скрытая угроза
🔍💼 Исследование рынка: 8 наиболее востребованных языков программирования в 2024 году
🤖🔢 Математические основы генеративных нейронных сетей: что нужно знать для их изучения
🗿🔨 Как мы разбили монолит на маленькие кусочки и что из этого вышло
📖 ТОП-7 книг по C# для начинающих разработчиков в 2024 году
⚛️💥 React 19 уничтожит все фреймворки
🗺️💼 Из Москвы в Дублин: опыт российского разработчика из Amazon
🐍🤔 «Задумчивый» код: временная сложность операций со структурами данных в Python
🤖🖼️ Как работают визуальные трансформеры: магия превращения пикселей в знания
🐰 Как решить проблему высокой связанности сервисов с помощью событийно-ориентированной архитектуры и RabbitMQ
👍2👏1
Машинное обучение в PHP

Это всесторонний обзор Transformers PHP, библиотеки, созданной для предоставления мощных возможностей обработки текста и изображений разработчикам на PHP. В нем рассматриваются различные аспекты библиотеки, включая ее особенности, архитектуру, интеграцию с ONNX Runtime, и примеры использования для задач, таких как анализ настроений и обработка изображений в текст.
👍21
Вы можете добавить столбец в таблицу базы данных в случае, если он отсутствует, и удалить его, если он уже присутствует. Для этого существуют следующие методы:

👉 whenTableDoesntHaveColumn

👉 whenTableHasColumn
🔥20🥱7👏5👍3❤‍🔥1
Can I PHP?

Это расширение позволяет проверить, доступна ли определенная функция или метод в разных версиях PHP.
👍15
Может ли абстрактный класс содержать частный(private) метод?

Да, в абстрактном классе можно иметь частный конкретный метод.

Этот частный метод будет отображаться ТОЛЬКО этому абстрактному классу. Это означает, что он должен будет использоваться каким-либо другим конкретным методом в абстрактном классе.

Дочерние классы не смогут вызвать его напрямую.

#вопросы_с_собеседований
👍142🥰2