#дайджест новостей по PHP за неделю:
🔎CakePHP 5.1.0 официально выпущен — Команда CakePHP рада сообщить о скором выходе CakePHP 5.1.0. Она вводит небольшое количество предупреждений об устаревании. Любые изменения, введенные сейчас, сохранят свое поведение до их удаления в версии 6.0.0.
🔎Chaperone, Defer, Cache::flexible и многое другое теперь доступно в Laravel 11.23 — На этой неделе команда Laravel выпустила версию 11.23 с обновлениями для Laracon, такими как defer(), concurrency, contextual container attritubes и другие.
🔎PHP 8.4.0 Beta 5 доступен для тестирования — Команда PHP рада сообщить о выходе PHP 8.4.0, Beta 5. Это третья бета-версия, продолжающая цикл выпуска PHP 8.4.
🔎Неделя Symfony #924 (9-15 сентября 2024 года) — На этой неделе активность разработчиков Symfony была направлена на исправление ошибок в существующих ветках: мы предоставили обходной путь для ошибки parse_url(), обновили данные wcswidth в компоненте String до Unicode 16, а также обновили данные ICU до версии 75.1.
🔎CakePHP 5.1.0 официально выпущен — Команда CakePHP рада сообщить о скором выходе CakePHP 5.1.0. Она вводит небольшое количество предупреждений об устаревании. Любые изменения, введенные сейчас, сохранят свое поведение до их удаления в версии 6.0.0.
🔎Chaperone, Defer, Cache::flexible и многое другое теперь доступно в Laravel 11.23 — На этой неделе команда Laravel выпустила версию 11.23 с обновлениями для Laracon, такими как defer(), concurrency, contextual container attritubes и другие.
🔎PHP 8.4.0 Beta 5 доступен для тестирования — Команда PHP рада сообщить о выходе PHP 8.4.0, Beta 5. Это третья бета-версия, продолжающая цикл выпуска PHP 8.4.
🔎Неделя Symfony #924 (9-15 сентября 2024 года) — На этой неделе активность разработчиков Symfony была направлена на исправление ошибок в существующих ветках: мы предоставили обходной путь для ошибки parse_url(), обновили данные wcswidth в компоненте String до Unicode 16, а также обновили данные ICU до версии 75.1.
🔥1
Эффективность контейнеров в модульных монолитах: Symfony vs. Laravel
Для сравнения контейнеров Laravel и Symfony автор провел тест, который симулировал создание сложных зависимостей в приложении и измерял время и память, затраченные на создание сервисов. Результаты показали, что контейнер Symfony значительно быстрее и эффективнее благодаря предкомпиляции конфигурации и использованию общих (shared) экземпляров сервисов по умолчанию. В Laravel же каждый раз пересоздаются зависимости, что приводит к большему времени и расходу памяти.
Для сравнения контейнеров Laravel и Symfony автор провел тест, который симулировал создание сложных зависимостей в приложении и измерял время и память, затраченные на создание сервисов. Результаты показали, что контейнер Symfony значительно быстрее и эффективнее благодаря предкомпиляции конфигурации и использованию общих (shared) экземпляров сервисов по умолчанию. В Laravel же каждый раз пересоздаются зависимости, что приводит к большему времени и расходу памяти.
Kamil Ruczyński
Container Efficiency in Modular Monoliths - Symfony vs. Laravel
In the evolving landscape of software development, modular monolith architectures have gained significant traction. This approach offers a balanced middle ground between traditional monolithic applications and microservices. However, choosing the right PHP…
👍18😁5
❗Вакансии «Библиотеки программиста» — ждем вас в команде!
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
ad.proglib.io
Вакансии в медиа «Библиотека программиста»
Количество проектов в редакции постоянно растет, так что нам всегда нужны специалисты
👍1
Парсер JSON
Парсер с нулевыми зависимостями для чтения больших JSON из любого источника с эффективным использованием памяти.
Парсер с нулевыми зависимостями для чтения больших JSON из любого источника с эффективным использованием памяти.
GitHub
GitHub - cerbero90/json-parser: 🧩 Zero-dependencies lazy parser to read JSON of any dimension and from any source in a memory-efficient…
🧩 Zero-dependencies lazy parser to read JSON of any dimension and from any source in a memory-efficient way. - cerbero90/json-parser
🔥11🤔3
Что такое Memcache и Memcached? Можно ли использовать один экземпляр Memcache между несколькими проектами PHP?
Memcached — это эффективное сервис кэширования, разработанный специально для снижения нагрузки на базу данных в динамических веб-приложениях. Модуль Memcache предлагает удобный процедурный и объектно-ориентированный интерфейс для Memcached.
Memcache — это пространство для хранения данных, и Memcache можно запускать на одном или нескольких серверах. Следовательно, можно использовать один экземпляр Memcache в нескольких проектах.
Можно настроить клиент для взаимодействия с отдельным набором экземпляров. Таким образом, также допускается запуск двух разных процессов Memcache на одном хосте. Несмотря на то, что оба таких процесса выполняются на одном и том же хосте, они остаются независимыми, если только нет раздела данных.
#вопросы_с_собеседований
Memcached — это эффективное сервис кэширования, разработанный специально для снижения нагрузки на базу данных в динамических веб-приложениях. Модуль Memcache предлагает удобный процедурный и объектно-ориентированный интерфейс для Memcached.
Memcache — это пространство для хранения данных, и Memcache можно запускать на одном или нескольких серверах. Следовательно, можно использовать один экземпляр Memcache в нескольких проектах.
Можно настроить клиент для взаимодействия с отдельным набором экземпляров. Таким образом, также допускается запуск двух разных процессов Memcache на одном хосте. Несмотря на то, что оба таких процесса выполняются на одном и том же хосте, они остаются независимыми, если только нет раздела данных.
#вопросы_с_собеседований
👍1🔥1
Атрибут #[\Override] в PHP
Здесь рассматривается новая функция PHP 8.3 — атрибут #[\Override], который позволяет указывать, что метод класса переопределяет метод родительского класса. Автор объясняет, как использовать этот атрибут, и показывает его преимущества для разработки и поддержки кода.
Что такое атрибут #[\Override]?
Атрибут #[\Override] сигнализирует, что метод в дочернем классе переопределяет метод родительского класса. Если атрибут используется для метода, который не переопределяет метод родителя, PHP вызовет фатальную ошибку. Пример:
Преимущества использования #[\Override]:
✅Обнаружение ошибок на этапе выполнения: Если метод больше не существует в родительском классе, PHP выведет фатальную ошибку, что помогает избежать непредсказуемого поведения.
✅Статический анализ: Инструменты статического анализа, такие как PHPStan, могут обнаружить ошибки до запуска программы. Это особенно полезно при работе с внешними библиотеками, которые могут изменяться.
✅Поддержка в IDE: Использование атрибута улучшает работу IDE, таких как PHPStorm, позволяя быстро находить методы, которые больше не переопределяют родительские.
✅Более понятный код: Атрибут делает код более очевидным, помогая новым разработчикам быстрее разобраться, какие методы переопределяют родительские.
Пример использования:
Автор приводит пример с Laravel, где метод casts() модели пользователя переопределяет метод родительского класса для задания правил преобразования полей (например, хэширование паролей). Если в будущем метод casts() будет заменён на новый, использование атрибута #[\Override] поможет быстро выявить проблему.
Здесь рассматривается новая функция PHP 8.3 — атрибут #[\Override], который позволяет указывать, что метод класса переопределяет метод родительского класса. Автор объясняет, как использовать этот атрибут, и показывает его преимущества для разработки и поддержки кода.
Что такое атрибут #[\Override]?
Атрибут #[\Override] сигнализирует, что метод в дочернем классе переопределяет метод родительского класса. Если атрибут используется для метода, который не переопределяет метод родителя, PHP вызовет фатальную ошибку. Пример:
class ParentClass {
protected function someMethod(): void {
// ...
}
}
class ChildClass extends ParentClass {
#[\Override]
protected function someMethod(): void {
// ...
}
}
Преимущества использования #[\Override]:
✅Обнаружение ошибок на этапе выполнения: Если метод больше не существует в родительском классе, PHP выведет фатальную ошибку, что помогает избежать непредсказуемого поведения.
✅Статический анализ: Инструменты статического анализа, такие как PHPStan, могут обнаружить ошибки до запуска программы. Это особенно полезно при работе с внешними библиотеками, которые могут изменяться.
✅Поддержка в IDE: Использование атрибута улучшает работу IDE, таких как PHPStorm, позволяя быстро находить методы, которые больше не переопределяют родительские.
✅Более понятный код: Атрибут делает код более очевидным, помогая новым разработчикам быстрее разобраться, какие методы переопределяют родительские.
Пример использования:
Автор приводит пример с Laravel, где метод casts() модели пользователя переопределяет метод родительского класса для задания правил преобразования полей (например, хэширование паролей). Если в будущем метод casts() будет заменён на новый, использование атрибута #[\Override] поможет быстро выявить проблему.
🔥7❤1👍1
Схематично, простыми словами о внутреннем устройстве PHP (Zend Engine, OPCache, JIT)
Данный пост нацелен на неопытных PHP-специалистов. От этой информации лучше программировать вы не станете, но уменьшится «магия» того, с чем работаешь
Данный пост нацелен на неопытных PHP-специалистов. От этой информации лучше программировать вы не станете, но уменьшится «магия» того, с чем работаешь
Хабр
Схематично, простыми словами о внутреннем устройстве PHP (Zend Engine, OPCache, JIT)
Простыми словами о внутреннем устройстве PHP Введение Данный пост нацелен на неопытных PHP-специалистов. От этой информации лучше программировать вы не станете. Ожидаемая польза: Мне когнитивно и...
👍6❤1👾1
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👍2
Как протестировать все маршруты в вашем приложении Laravel, написав всего один тест Pest
Здесь рассказывается о новом пакете для тестирования маршрутов в приложениях Laravel, который называется spatie/pest-plugin-route-testing. Этот пакет позволяет разработчикам протестировать все простые маршруты (например, страницы с GET-запросами) в приложении с помощью одного теста. Это помогает убедиться, что все простые страницы приложения корректно работают, и минимизировать возможность забыть добавить тест для новой страницы.
Здесь рассказывается о новом пакете для тестирования маршрутов в приложениях Laravel, который называется spatie/pest-plugin-route-testing. Этот пакет позволяет разработчикам протестировать все простые маршруты (например, страницы с GET-запросами) в приложении с помощью одного теста. Это помогает убедиться, что все простые страницы приложения корректно работают, и минимизировать возможность забыть добавить тест для новой страницы.
👍7🤔2
Опрос
Мы хотим провести большой розыгрыш и подарить победителю смартфон на выбор. Помимо iPhone, предлагаем вам выбрать, какой ещё смартфон вы бы хотели видеть среди призов.
Мы хотим провести большой розыгрыш и подарить победителю смартфон на выбор. Помимо iPhone, предлагаем вам выбрать, какой ещё смартфон вы бы хотели видеть среди призов.
🤩3👍1
Какой смартфон вам по душе?
Anonymous Poll
6%
OnePlus Open 5G
2%
OPPO Find N3
47%
Samsung Galaxy S24 Ultra на 1ТБ
24%
Xiaomi 14 Ultra 512 ГБ
4%
Vivo X100 Ultra
17%
Свой вариант (напишу в комментариях)
🥱14😁4👍3🥰1🌚1
Статья поднимает вопросы о сложностях конфигурации в Laravel, критикует существующие подходы и предлагает альтернативные решения. Автор считает, что текущая система может быть слишком громоздкой и требует упрощения, чтобы разработчики могли легче настраивать приложения.
DEV Community
Laravel Config Problem: Is It Time for a Revolution?
📄 Introduction While working on the Bridge package Laravel Symfony Serializer, I ran into...
👍1
Подключение оплаты Тинькофф к Telegram-боту на чистом php
Сам бот работает на php без вспомогательных библиотек.
Сам бот работает на php без вспомогательных библиотек.
Хабр
Подключение оплаты Тинькофф к Telegram-боту на чистом php
Недавно добавил оплату в свой Телеграм‑бот. После некоторых изысканий выбор пал на Тинькофф (ныне Т‑банк). Сам бот работает на php без вспомогательных библиотек. Возможно, кому‑то...
👍5
💬 А у вас есть платные подписки? Сколько сервисов в месяц оплачиваете?
👍 — один
❤️ — два/три
🔥 — больше трёх
👇Расскажите в комментариях, что это за сервисы👇
👍 — один
❤️ — два/три
🔥 — больше трёх
👇Расскажите в комментариях, что это за сервисы👇
🔥55❤40👍18
👨💻 Подборка шпаргалок по работе с Git: на заметку разработчику
👍8
Forwarded from Библиотека тестировщика | QA, тестирование, quality assurance, manual testing, autotesting, ручное тестирование, автотесты
💻🔍💼 Кризис IT-рынка: как джуны и кадровый голод меняют правила игры
В условиях нехватки опытных специалистов и наплыва джунов, IT-компании вынуждены искать нестандартные подходы к найму. Рассмотрим основные тренды и стратегии адаптации рынка.
Читать статью
#почитать
В условиях нехватки опытных специалистов и наплыва джунов, IT-компании вынуждены искать нестандартные подходы к найму. Рассмотрим основные тренды и стратегии адаптации рынка.
Читать статью
#почитать
👍4👏1😁1