TGViewer
Channel Public Channel
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter

Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter

@phpproglib

Все самое полезное для пхпшника в одном канале.

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

Учиться у нас: clc.to/M561SQ

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

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Subscribers
10.5K
Photos
1.8K
Videos
31
Links
4.6K

Showing posts older than #4871 · Back to latest

Older Posts 18 shown
Post #4870 2.81K
19 важных советов по оптимизации производительности Laravel

В этой статье рассмотрятся 19 советов, которые могут значительно повысить производительность вашего приложения Laravel
DEV Community 19 Essential Laravel Performance Optimization Tips In this article, we will explore 19 tips that can significantly enhance the performance of your...
  • 🥱 5
  • 🌚 4
  • 👍 2
Post #4869 2.69K
«Немного курочим стандартный валидатор Laravel или первый опыт с фасадами и сервис провайдерами»

Статья про то, как изменить стандартное поведение нормализации ввода и решить проблемы валидации, возникшие из-за этого.
Хабр Немного курочим стандартный валидатор Laravel или первый опыт с фасадами и сервис провайдерами Предыстория Все началось с того, что мне понадобилось отличать пустые строки от null в апи запросах. Напомню: стандартное поведение Laravel заключается в обрезании у строк начальных и конечных...
  • 👍 2
Post #4868 2.73K
Выбор библиотеки PHP на основе производительности

Здесь обсуждается выбор библиотек для распознавания веб-сканеров (краулеров) в PHP с акцентом на их производительность в приложении Shopware. Рассматриваются три варианта: встроенная функция PHP get_browser, а также специализированные библиотеки jaybizzle/crawler-detect и matomo/device-detector.

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

Обе специализированные библиотеки показали схожую производительность с разницей в 12%: crawler-detect выполнилась за 767 мс, а device-detector — за 685 мс. Однако, при тестировании на одиночных запросах (один HTTP-заголовок), matomo/device-detector оказалась в 10 раз медленнее из-за инициализации регулярных выражений, что добавляет около 18 мс к каждому запросу. В то же время jaybizzle/crawler-detect генерирует регулярные выражения на этапе сборки, что позволяет обрабатывать запросы быстрее.

В итоге, для задачи определения краулера по одному запросу лучше подходит библиотека jaybizzle/crawler-detect с задержкой в 2 мс. matomo/device-detector, несмотря на её относительную медлительность в данном случае, может быть полезной для анализа большого количества запросов в фоновом режиме, где скорость работы с одиночными запросами не столь критична.
Tideways Choosing a PHP Library based on Performance Sometimes, performance is the primary requirement when you are picking a third-party library to solve a task in your application. For CPU intensive work, there are often similar alternatives that you can choose from: Serialization with Serde, JMS Serializer…
  • 👍 4
  • 🥰 1
  • 🌚 1
Post #4866 2.78K
Что такое Path Traversal?

Path Traversal в PHP — это уязвимость безопасности, при которой злоумышленник может попытаться получить доступ к файлам или директориям за пределами предназначенной области. Это может произойти, если приложение неправильно обрабатывает пользовательский ввод в пути файлов.

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

Для предотвращения атак Path Traversal важно правильно обрабатывать и валидировать пользовательский ввод, особенно при работе с файловой системой. Рекомендуется использовать абсолютные пути и проверять, что запрошенные ресурсы находятся в пределах ожидаемой области файловой структуры. Также полезно ограничивать права доступа к файлам и директориям на сервере.

#вопросы_с_собеседований
  • 👍 5
  • 🥱 3
  • ❤ 1
  • 😁 1
Post #4865 2.78K
#memes
  • 💯 28
  • 👏 5
  • 😁 5
Post #4861 2.01K

Forwarded from Библиотека тестировщика | QA, тестирование, quality assurance, manual testing, autotesting, ручное тестирование, автотесты

💻🔍💼 Кризис IT-рынка: как джуны и кадровый голод меняют правила игры

В условиях нехватки опытных специалистов и наплыва джунов, IT-компании вынуждены искать нестандартные подходы к найму. Рассмотрим основные тренды и стратегии адаптации рынка.

Читать статью

#почитать
  • 👍 4
  • 👏 1
  • 😁 1
Post #4858 3.68K
👨‍💻 Подборка шпаргалок по работе с Git: на заметку разработчику
  • 👍 8
Post #4857 2.87K
💬 А у вас есть платные подписки? Сколько сервисов в месяц оплачиваете?

👍 — один
❤️ — два/три
🔥 — больше трёх

👇Расскажите в комментариях, что это за сервисы👇
  • 🔥 55
  • ❤ 40
  • 👍 18
Post #4856 3.3K
Подключение оплаты Тинькофф к Telegram-боту на чистом php

Сам бот работает на php без вспомогательных библиотек.
  • 👍 5
Post #4854 2.9K
Статья поднимает вопросы о сложностях конфигурации в 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
Post #4851 3.43K
#memes
  • 😁 87
  • 🥰 1
  • 🤔 1
Post #4849 3.23K
  • 🥱 14
  • 😁 4
  • 👍 3
  • 🥰 1
  • 🌚 1
Post #4848 2.75K
Опрос

Мы хотим провести большой розыгрыш и подарить победителю смартфон на выбор. Помимо iPhone, предлагаем вам выбрать, какой ещё смартфон вы бы хотели видеть среди призов.
  • 🤩 3
  • 👍 1
Post #4847 2.99K
Как протестировать все маршруты в вашем приложении Laravel, написав всего один тест Pest

Здесь рассказывается о новом пакете для тестирования маршрутов в приложениях Laravel, который называется spatie/pest-plugin-route-testing. Этот пакет позволяет разработчикам протестировать все простые маршруты (например, страницы с GET-запросами) в приложении с помощью одного теста. Это помогает убедиться, что все простые страницы приложения корректно работают, и минимизировать возможность забыть добавить тест для новой страницы.
  • 👍 7
  • 🤔 2
Post #4846 2.61K
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
  • 👍 2
Post #4845 2.94K
Схематично, простыми словами о внутреннем устройстве PHP (Zend Engine, OPCache, JIT)

Данный пост нацелен на неопытных PHP-специалистов. От этой информации лучше программировать вы не станете, но уменьшится «магия» того, с чем работаешь
  • 👍 6
  • ❤ 1
  • 👾 1
Post #4843 2.72K
Атрибут #[\Override] в PHP

Здесь рассматривается новая функция 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
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →