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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Download Telegram
Что такое вариативная функция или spread-оператор?

Вариативная функция — это функция, которая может принимать переменное количество аргументов. Это означает, что ее можно вызывать с различным числом аргументов. В PHP вариативные функции объявляются с помощью оператора ... (также известного как spread-оператор) перед именем аргумента.

Например, вариативная функция может быть объявлена следующим образом(фото 1)

Spread-оператор, также представленный символом ..., выполняет обратную операцию — он распаковывает массив и передает его элементы как аргументы в функцию. Он может использоваться для передачи переменного количества аргументов в функцию или для объединения массивов.

Например, spread-оператор можно использовать следующим образом(фото 2)

В этом примере массив $numbers распаковывается с помощью spread-оператора и его элементы передаются в вариативную функцию sum в качестве отдельных аргументов.

#вопросы_с_собеседований
👍82
Сделайте свое приложение быстрее с PHP 8.3

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

🚀Прямые улучшения производительности:
PHP 8.3 вводит оптимизации, направленные на повышение эффективности выполнения во время работы. Компилятор Just-In-Time (JIT) был улучшен для более эффективной работы, что приводит к более быстрому выполнению сценариев, особенно для ресурсоемких задач. Кроме того, улучшения в обработке операторов и сборке мусора способствуют снижению времени выполнения и более эффективному использованию памяти.

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

💡Косвенные увеличения производительности:
Помимо прямых оптимизаций, PHP 8.3 вносит улучшения синтаксиса, методов и увеличивает безопасность типов, что косвенно влияет на производительность. Эти улучшения оптимизируют разработку, сокращают производственные ошибки и позволяют более быстро выпускать обновления, в конечном итоге повышая эффективность приложения.

🔧Использование новых функций для более быстрой разработки:
Использование новых функций, таких как типизированные константы классов, динамическое извлечение констант классов и элементов Enum, улучшенное обработка ошибок, расширенная поддержка типов и упрощенная проверка JSON, может значительно повысить скорость разработки и надежность кода.

📈Общие улучшения производительности PHP:
Помимо функций PHP 8.3, оптимизация стратегий кэширования, переход на HTTP/2 и оптимизация запросов к базе данных и кода являются рекомендуемыми практиками для повышения общей производительности приложения. Инструменты, такие как мониторинг производительности приложений (APM), обеспечивают мониторинг в реальном времени и подробный анализ трассировки, помогая выявлять и устранять узкие места в производительности.
👍10
🔍 12 лучших ИИ-поисковиков, которые найдут иголку в стоге сена

Умение быстро находить решения сложных задач — один из самых важных навыков разработчика. Но найти по-настоящему полезную информацию в лавинообразном потоке SEO-оптимизированного контента бывает нелегко. На помощь придут ИИ-поисковики: они могут отыскать ответ на самый размытый запрос, а при необходимости — сгенерируют собственное решение.

🔗 Смотреть полную подборку поисковиков
🔗 Зеркало
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰4👏1
💬 Чем вы в основном занимаетесь после работы в свободное от работы время?

❤️ — смотрю сериалы/фильмы, читаю книги, сижу в соцсетях
👍 — занимаюсь домашними делами: убираюсь, готовлю, провожу время с детьми
🥰 — работаю над пет-проектами
🔥 — занимаюсь спортом/хобби
🤔 — а я вообще не уверен, что у меня свободное время

👇 Пишите в комментариях собственные варианты

#интерактив
61🤔53👍35🔥30🥰18
Audio
🎸💯«Идущий к реке» — rock edition

Что если бы знаменитый монолог был песней? Гадать больше не надо — на помощь приходят нейросети!

👉О том, какая именно нейросеть помогла нам это сделать, читайте в нашем новом канале — Библиотека нейрозвука

Подписывайтесь, там много интересного!
Please open Telegram to view this post
VIEW IN TELEGRAM
👏6🌚31💯1👾1
Какова цель ключевого слова «use» в пространствах имен PHP?

Псевдонимы пространств имен или классов: Позволяет задать более короткие и удобные имена для длинных пространств имен или классов. Это делает код более читаемым и кратким.

Импорт констант: Позволяет импортировать константы, определенные в пространстве имен, с помощью use:

Импорт функций (начиная с PHP 8): В PHP 8 и выше вы также можете импортировать функции из пространства имен в текущее пространство имен, используя use function.

Импорт констант (начиная с PHP 8): Аналогично, в PHP 8 и выше вы можете импортировать константы из пространства имен в текущее пространство имен с помощью use const.

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

#вопросы_с_собеседований
13👍2🥱1
Советы по оптимизации интеграционных тестов

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

Ниже перечислены основные советы из статьи:

✔️Оптимизация опкеша: Настройте опкеш для PHP для улучшения производительности при запуске тестов.

✔️Оптимизация автозагрузчика Composer: Используйте флаги при установке зависимостей через Composer для оптимизации автозагрузчика.

✔️Использование транзакций: Используйте транзакции базы данных для очистки базы данных после каждого тестового случая.

✔️Использование кеша Doctrine: Используйте статический кеш для улучшения производительности в связке с Doctrine.

✔️Использование tmpfs для базы данных в Docker: Определите tmpfs для хранения базы данных в оперативной памяти для ускорения выполнения тестов в контейнере Docker.

✔️Использование дампа базы данных вместо миграций: Вместо запуска миграций каждый раз перед тестами, используйте предварительно созданный дамп базы данных.

✔️Очистка памяти, используемой свойствами: Очищайте память, используемую свойствами после каждого тестового случая для предотвращения утечек памяти.

✔️Сборка приложения с использованием продуктовых настроек: Соберите приложение с использованием настроек, соответствующих продакшену.

✔️Использование pcov вместо xdebug для создания отчетов о покрытии кода: Отключите xdebug и используйте pcov для ускорения генерации отчетов о покрытии кода.

✔️Использование Paratest для параллельного выполнения тестов: Если ваши тесты независимы, используйте инструмент для параллельного выполнения тестов Paratest.

✔️Ускорение построения образа Docker: Сосредоточьтесь на уменьшении размера образа Docker для ускорения процесса его скачивания.

✔️Использование актуальной версии PHP: Обновляйте PHP до последней версии для исправления ошибок и улучшения производительности.

✔️Настройка тайм-аутов: Установите жесткий тайм-аут для автоматического завершения теста, если он занимает слишком много времени.

✔️Мониторинг: Отслеживайте использование памяти и время выполнения каждого теста для выявления потенциальных проблем.
🔥5👍4
«Наш путь в создании информационной системы проверок контрагентов || Laravel having no problems»

Проверка потенциальных контрагентов на благонадёжность — неотъемлемая часть ведения бизнеса. Она нужна, чтобы эффективно управлять рисками, соблюдать должную осмотрительность, исключить репутационные риски и финансовые потери.

Здесь рассказывается про систему, которая позволила оптимизировать работу по проверке контрагентов из открытых источников, и написана на Laravel
🤔2🎉1
💬 Это пост для советов

👇Поделитесь в комментариях любимыми образовательными YouTube-каналами, бесплатными курсами, которые понравились, книгами или статьями👇

#интерактив
1🎉1
PHP Monitor 7

PHP Monitor 7 это инструмент для управления локальной разработкой на PHP с использованием Homebrew. Новая версия включает в себя ряд значительных улучшений и новых функций, среди которых:

Менеджер расширений: Теперь можно легко управлять установкой и управлением расширений для различных версий PHP. Менеджер расширений позволяет быстро устанавливать необходимые расширения для каждой версии PHP, а также управлять уже установленными расширениями.

Управление расширениями через домены: PHP Monitor 7 позволяет настраивать установленные расширения для каждого проекта независимо, даже если используется изолированная версия PHP для проекта. Это упрощает управление конфигурацией расширений для различных проектов.

Переопределение языка через настройки приложения: Теперь можно выбирать язык интерфейса PHP Monitor независимо от языка операционной системы. Это позволяет легко переключаться между доступными языками интерфейса приложения.

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

Улучшенный процесс обновления: Обновление до PHP Monitor 7 можно выполнить прямо из приложения, что упрощает процесс обновления для пользователей. Также возможно обновление через Homebrew, хотя это не рекомендуется.
👍4🌚2
👍 Ваш ультимативный набор шпаргалок для разработки на 2024 год

Эти шпаргалки сэкономят вам часы бесконечного гугления и упростят процесс кодинга.

🔗 Читать статью
🔗 Зеркало
👍6😁1