#хочу_спросить
Задавайте любые вопросы о программировании и получайте ответы от пользователей. В комментариях под постом укажите #язык, #стек и/или #библиотеку, по которым задаете вопрос.
Задавайте любые вопросы о программировании и получайте ответы от пользователей. В комментариях под постом укажите #язык, #стек и/или #библиотеку, по которым задаете вопрос.
❤🔥1
TransformersPHP
Инструментарий для PHP-разработчиков, позволяющий легко добавлять возможности машинного обучения в свои проекты. Пост-интро.
Инструментарий для PHP-разработчиков, позволяющий легко добавлять возможности машинного обучения в свои проекты. Пост-интро.
GitHub
GitHub - CodeWithKyrian/transformers-php: Transformers PHP is a toolkit for PHP developers to add machine learning magic to their…
Transformers PHP is a toolkit for PHP developers to add machine learning magic to their projects easily. - GitHub - CodeWithKyrian/transformers-php: Transformers PHP is a toolkit for PHP developer...
❤🔥5👍2
Forwarded from PHP jobs — вакансии по PHP, Symfony, Laravel
#дайджест #phpdevjob
Вакансии PHP разработчиков уровня Junior
▪️Разработчик PHP
Тюмень. Восток.Софт — разработка ПО
Подробнее
▪️PHP-программист
Удаленка. Офис в Барнауле. ИНЛАЙН — разработка и развитие интернет-сервисов в сфере B2B
Подробнее
Вакансии PHP разработчиков уровня Middle
▪️PHP-разработчик
Удаленка. Офис в Ульяновске. Дион Софт — разработка и развитие медицинской информационной системы
Подробнее
▪️PHP разработчик
Удаленка. Офис в Москве. Restaurant Guru — ресурс, в котором собраны лучшие заведения со всех частей света
Подробнее
Вакансии PHP разработчиков уровня Senior
▪️PHP-разработчик
Удаленка. Офис в Москве. АЙТИ.СПЕЙС — разработка, внедрение и сопровождение ПО
Подробнее
▪️Ведущий разработчик PHP
Удаленка. Офис в Москве. Dex — разработка мобильных приложений и web-сервисов
Подробнее
Понравились вакансии?
❤️ — да
🤔 — нет
Вакансии PHP разработчиков уровня Junior
▪️Разработчик PHP
Тюмень. Восток.Софт — разработка ПО
Подробнее
▪️PHP-программист
Удаленка. Офис в Барнауле. ИНЛАЙН — разработка и развитие интернет-сервисов в сфере B2B
Подробнее
Вакансии PHP разработчиков уровня Middle
▪️PHP-разработчик
Удаленка. Офис в Ульяновске. Дион Софт — разработка и развитие медицинской информационной системы
Подробнее
▪️PHP разработчик
Удаленка. Офис в Москве. Restaurant Guru — ресурс, в котором собраны лучшие заведения со всех частей света
Подробнее
Вакансии PHP разработчиков уровня Senior
▪️PHP-разработчик
Удаленка. Офис в Москве. АЙТИ.СПЕЙС — разработка, внедрение и сопровождение ПО
Подробнее
▪️Ведущий разработчик PHP
Удаленка. Офис в Москве. Dex — разработка мобильных приложений и web-сервисов
Подробнее
Понравились вакансии?
❤️ — да
🤔 — нет
tyumen.hh.ru
Вакансия Разработчик PHP (junior) в Тюмени, работа в компании Восток.Софт (вакансия в архиве c 28 мая 2024)
Зарплата: не указана. Тюмень. Требуемый опыт: 1–3 года. Полная занятость. Дата публикации: 27.05.2024.
😁7👍4🥱3🔥1
Финализация классов
Здесь обсуждается значимость применения ключевого слова final в классах PHP для повышения безопасности и автоматизации процесса их окончательной реализации.
Сначала обсуждается преимущества применения ключевого слова final в классах, а также проблем, с которыми сталкиваются инструменты статического анализа кода, такие как Rector, при попытке автоматизировать процесс финализации классов. Затем переходит к обсуждению необходимости автоматизации этого процесса, особенно в случае больших проектов с большим количеством классов.
Далее представлен инструмент Swiss Knife, который позволяет автоматически обнаруживать и финализировать классы в проекте, учитывая различные сценарии, такие как классы-родители, сущности Doctrine, классы, которые могут быть промокированы в тестах, и т. д.
Здесь обсуждается значимость применения ключевого слова final в классах PHP для повышения безопасности и автоматизации процесса их окончательной реализации.
Сначала обсуждается преимущества применения ключевого слова final в классах, а также проблем, с которыми сталкиваются инструменты статического анализа кода, такие как Rector, при попытке автоматизировать процесс финализации классов. Затем переходит к обсуждению необходимости автоматизации этого процесса, особенно в случае больших проектов с большим количеством классов.
Далее представлен инструмент Swiss Knife, который позволяет автоматически обнаруживать и финализировать классы в проекте, учитывая различные сценарии, такие как классы-родители, сущности Doctrine, классы, которые могут быть промокированы в тестах, и т. д.
Tomasvotruba
Finalize Classes - Automated and Safe
Final classes have [many](https://ocramius.github.io/blog/when-to-declare-classes-final/) [great](https://tomasvotruba.com/blog/2019/01/24/how-to-kill-parents) [benefits](https://matthiasnoback.nl/2018/09/final-classes-by-default-why/) for future human readers…
❤2
ComposerRequireChecker
Инструмент CLI для проверки того, использует ли конкретный пакет composer импортированные символы, которые не входят в его прямые зависимости от composer.
Инструмент CLI для проверки того, использует ли конкретный пакет composer импортированные символы, которые не входят в его прямые зависимости от composer.
GitHub
GitHub - maglnet/ComposerRequireChecker: A CLI tool to check whether a specific composer package uses imported symbols that aren't…
A CLI tool to check whether a specific composer package uses imported symbols that aren't part of its direct composer dependencies - maglnet/ComposerRequireChecker
👍4
Как реализовать паттерн проектирования «Адаптер» на PHP, и какие распространенные случаи его использования?
В PHP вы можете реализовать паттерн «Адаптер», чтобы обеспечить работу несовместимых интерфейсов вместе.
В нашем примере:
Adaptee — класс с несовместимым интерфейсом.
Target — интерфейс, ожидаемый клиентом.
Adapter — класс, который адаптирует Adaptee к интерфейсу Target.
Распространенные случаи использования паттерна Адаптер включают:
🟢Интеграция с легаси-кодом: Когда у вас есть старый код с другим интерфейсом, который нужно использовать в новой системе.
🟢Использование сторонних библиотек: Когда вы хотите использовать стороннюю библиотеку, которая не соответствует требуемому интерфейсу.
🟢Мокирование объектов при тестировании: Когда нужно создать мок-объекты, которые реализуют определенный интерфейс для целей тестирования.
🟢Масштабируемость системы: Когда нужно переключаться между различными реализациями функциональности без изменения кода клиента.
#вопросы_с_собеседований
В PHP вы можете реализовать паттерн «Адаптер», чтобы обеспечить работу несовместимых интерфейсов вместе.
В нашем примере:
Adaptee — класс с несовместимым интерфейсом.
Target — интерфейс, ожидаемый клиентом.
Adapter — класс, который адаптирует Adaptee к интерфейсу Target.
Распространенные случаи использования паттерна Адаптер включают:
🟢Интеграция с легаси-кодом: Когда у вас есть старый код с другим интерфейсом, который нужно использовать в новой системе.
🟢Использование сторонних библиотек: Когда вы хотите использовать стороннюю библиотеку, которая не соответствует требуемому интерфейсу.
🟢Мокирование объектов при тестировании: Когда нужно создать мок-объекты, которые реализуют определенный интерфейс для целей тестирования.
🟢Масштабируемость системы: Когда нужно переключаться между различными реализациями функциональности без изменения кода клиента.
#вопросы_с_собеседований
🔥16👍8❤1
Фасады Laravel
В статье:
— Обсуждается использование фасадов Laravel и оспаривает утверждение, что они не являются настоящими фасадами, а скорее являются прокси. Она утверждает, что при правильном использовании фасадов можно добиться чистого и тестируемого кода. Автор приводит примеры того, как использовать фасады в реальном времени для упрощения тестирования и сделать код более поддерживаемым.
— В первом примере показано, как переработать вызов статического метода в вызов обычного метода с использованием фасадов в реальном времени, что облегчает тестирование без необходимости дополнительных интерфейсов или изменений кода.
— Рассматривается концепция «горячей заменяемости», используя пример диспетчеризации заданий с различными реализациями для тестирования и производственной среды. Показано, как фасады могут упростить переключение между реализациями и сделать код более адаптивным.
В статье:
— Обсуждается использование фасадов Laravel и оспаривает утверждение, что они не являются настоящими фасадами, а скорее являются прокси. Она утверждает, что при правильном использовании фасадов можно добиться чистого и тестируемого кода. Автор приводит примеры того, как использовать фасады в реальном времени для упрощения тестирования и сделать код более поддерживаемым.
— В первом примере показано, как переработать вызов статического метода в вызов обычного метода с использованием фасадов в реальном времени, что облегчает тестирование без необходимости дополнительных интерфейсов или изменений кода.
— Рассматривается концепция «горячей заменяемости», используя пример диспетчеризации заданий с различными реализациями для тестирования и производственной среды. Показано, как фасады могут упростить переключение между реализациями и сделать код более адаптивным.
blog.oussama-mater.tech
Laravel Facades - Write Testable Code
Laravel relies heavily on Facades. Some might think they are anti-patterns, but I believe that if they are used correctly, they can result in clean and testable code. Let's see how.
👍6
PHP/FI 1. Personal Home Page Tools/Forms Interpreter
История PHP начинается не с полноценного языка программирования, а с набора CGI-скриптов на C, известного как PHP/FI 1. Здесь мы возвращаемся к истокам PHP, рассматривая его первую версию, её компиляцию и функциональность.
История PHP начинается не с полноценного языка программирования, а с набора CGI-скриптов на C, известного как PHP/FI 1. Здесь мы возвращаемся к истокам PHP, рассматривая его первую версию, её компиляцию и функциональность.
Хабр
PHP/FI 1. Personal Home Page Tools/Forms Interpreter
Путь от набора CGI-скриптов до одного из самых популярных языков веб-разработки История зарождения PHP История PHP начинается не с полноценного языка программирования, а с набора CGI-скриптов на C,...
👍7
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
❤1👍1
Как отладить любую команду Symfony, просто передав '-x'
Подход позволяет запускать любую Symfony команду в режиме отладки, даже если она не принадлежит вашему приложению, например, команды Doctrine или стандартные команды Symfony.
Это более быстрый и удобный способ отладки команд через добавление флага -x или --xdebug при вызове команды. После обнаружения этого флага слушатель событий перезапускает команду с необходимыми переменными среды для работы xDebug, используя функцию passthru().
Структура слушателя событий детально объяснена далее. Он реализует интерфейс ConsoleEvents::COMMAND и прослушивает событие configure для всех команд. Если обнаруживается флаг -x, команда перезапускается с установленными переменными среды для xDebug.
Код слушателя включает проверки типов и корректное перезапускание команды, а также учитывает ситуации, когда команда вызывается через HelpCommand.
Такой подход делает отладку Symfony команд более удобной и быстрой, особенно при работе в командной строке.
Подход позволяет запускать любую Symfony команду в режиме отладки, даже если она не принадлежит вашему приложению, например, команды Doctrine или стандартные команды Symfony.
Это более быстрый и удобный способ отладки команд через добавление флага -x или --xdebug при вызове команды. После обнаружения этого флага слушатель событий перезапускает команду с необходимыми переменными среды для работы xDebug, используя функцию passthru().
Структура слушателя событий детально объяснена далее. Он реализует интерфейс ConsoleEvents::COMMAND и прослушивает событие configure для всех команд. Если обнаруживается флаг -x, команда перезапускается с установленными переменными среды для xDebug.
Код слушателя включает проверки типов и корректное перезапускание команды, а также учитывает ситуации, когда команда вызывается через HelpCommand.
Такой подход делает отладку Symfony команд более удобной и быстрой, особенно при работе в командной строке.
DEV Community
How to debug ANY Symfony command simply passing `-x`
Debugging a Symfony console command requires setting some environment variables (depending on your...
👍7
Forwarded from PHP jobs — вакансии по PHP, Symfony, Laravel
#дайджест #phpdevjob
Вакансии PHP разработчиков уровня Junior
▪️Разработчик PHP
Удаленка. Офис в Москве. Adv.Cake — интернет-маркетинг
Подробнее
▪️PHP developer
Омск. ИТБ — услуги интернет-маркетинга
Подробнее
Вакансии PHP разработчиков уровня Middle
▪️PHP-разработчик
Удаленка. Офис в Ульяновске. Дион Софт — разработка и развитие медицинской информационной системы
Подробнее
▪️PHP разработчик
Удаленка. Офис в Москве. ВсеИнструменты — всё для дома, дачи, стройки и ремонта
Подробнее
Вакансии PHP разработчиков уровня Senior
▪️WEB-программист
Тула. Contactgroup — продвижение и разработка сайтов
Подробнее
▪️PHP разработчик
Москва. EcoFinance — развитие и внедрение продуктов онлайн-кредитования
Подробнее
Понравились вакансии?
❤️ — да
🤔 — нет
Вакансии PHP разработчиков уровня Junior
▪️Разработчик PHP
Удаленка. Офис в Москве. Adv.Cake — интернет-маркетинг
Подробнее
▪️PHP developer
Омск. ИТБ — услуги интернет-маркетинга
Подробнее
Вакансии PHP разработчиков уровня Middle
▪️PHP-разработчик
Удаленка. Офис в Ульяновске. Дион Софт — разработка и развитие медицинской информационной системы
Подробнее
▪️PHP разработчик
Удаленка. Офис в Москве. ВсеИнструменты — всё для дома, дачи, стройки и ремонта
Подробнее
Вакансии PHP разработчиков уровня Senior
▪️WEB-программист
Тула. Contactgroup — продвижение и разработка сайтов
Подробнее
▪️PHP разработчик
Москва. EcoFinance — развитие и внедрение продуктов онлайн-кредитования
Подробнее
Понравились вакансии?
❤️ — да
🤔 — нет
👍4
Вам предлагают очень «жирный» оффер, но каждый раз вы находите причину, чтобы остаться на текущей работе. Как быть?
Anonymous Poll
45%
Соглашусь на жирный оффер
31%
Если на текущей работе работается, зачем увольняться?
1%
Свой вариант (напишу в комментариях)
23%
Посмотреть результаты
🎉3👍1
Создание докер-образов PHP с помощью Wolfi-OS
Основные проблемы с официальными образами Docker PHP заключаются в их размере, длительном времени сборки из-за необходимости компиляции расширений и сложностях с созданием мультиархитектурных образов.
Для решения этих проблем предлагается использовать Wolfi, дистрибутив Linux, специально оптимизированный для запуска в контейнерах, который предоставляет предварительно скомпилированные пакеты, минимизируя время сборки и размер образа.
Основные проблемы с официальными образами Docker PHP заключаются в их размере, длительном времени сборки из-за необходимости компиляции расширений и сложностях с созданием мультиархитектурных образов.
Для решения этих проблем предлагается использовать Wolfi, дистрибутив Linux, специально оптимизированный для запуска в контейнерах, который предоставляет предварительно скомпилированные пакеты, минимизируя время сборки и размер образа.
Shyim's Brain
Building PHP docker images in a better way with Wolfi-OS
Currently, the de-facto standard to Dockerizing PHP applications is to use the Docker PHP official image. This is maintained by Docker itself and community members and has compiled PHP with no extensions. To install extensions, we have to do this in our Dockerfile:…
🔥7
Какой шаблонизатор поддерживает Symfony?
Шаблонизатором по умолчанию в Symfony является Twig. Мы также можем использовать обычный PHP-код. Twig — это актуальный и современный шаблонизатор для PHP.
Преимущества Twig:
Быстрота: Накладные расходы на регулярный PHP-код были сведены к минимуму, так как Twig помогает компилировать шаблоны в простой оптимизированный PHP-код.
Безопасность: Twig как язык шаблонов используется в приложениях, где пользователи могут изменять дизайн шаблона. В нем есть режим «песочницы» для борьбы с недоверенным кодом шаблонов.
Гибкость: Twig позволяет разработчику задавать пользовательские теги и фильтры и создавать свой DSL, что разрешается гибким лексером и парсером twig.
#вопросы_с_собеседований
Шаблонизатором по умолчанию в Symfony является Twig. Мы также можем использовать обычный PHP-код. Twig — это актуальный и современный шаблонизатор для PHP.
Преимущества Twig:
Быстрота: Накладные расходы на регулярный PHP-код были сведены к минимуму, так как Twig помогает компилировать шаблоны в простой оптимизированный PHP-код.
Безопасность: Twig как язык шаблонов используется в приложениях, где пользователи могут изменять дизайн шаблона. В нем есть режим «песочницы» для борьбы с недоверенным кодом шаблонов.
Гибкость: Twig позволяет разработчику задавать пользовательские теги и фильтры и создавать свой DSL, что разрешается гибким лексером и парсером twig.
#вопросы_с_собеседований
🔥4🥱3👍1🌚1
Resonance
Фреймворк, специально разработанный для создания веб-приложений с возможностями искусственного интеллекта и ML. Он основан на Swoole и имеет встроенные веб-серверы и серверы WebSocket.
Фреймворк, специально разработанный для создания веб-приложений с возможностями искусственного интеллекта и ML. Он основан на Swoole и имеет встроенные веб-серверы и серверы WebSocket.
GitHub
GitHub - distantmagic/resonance: PHP Framework designed to build IO-intensive web applications.
PHP Framework designed to build IO-intensive web applications. - distantmagic/resonance
🌚6👍3🤔2
Meilisearch — организация поиска в связке с Laravel
Здесь описана организация поиска через Meilisearch и нюансы использования в связке с Laravel.
Здесь описана организация поиска через Meilisearch и нюансы использования в связке с Laravel.
Хабр
Meilisearch — организация поиска в связке с Laravel
Hola, Amigos! Меня зовут Евгений Шмулевский, я backend-разработчик на Laravel в агентстве продуктовой разработки Amiga . В статье описываю организацию поиска через Meilisearch и нюансы использования в...
🔥4👍2
😎 А если бы вы не стали разработчиком, то кем хотели бы быть?
Давайте пофантазируем. Пишите свои варианты в комментарии👇
Давайте пофантазируем. Пишите свои варианты в комментарии👇
❤1