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 #3839 · Back to latest

Older Posts 20 shown
Post #3837 2.28K
👁Помогите «Библиотеке программиста» лучше узнать свою аудиторию

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

Пожалуйста, ответьте на несколько вопросов — это не займет у вас много времени, но поможет нам делать более полезные и интересные посты!
  • ❤ 2
  • 👍 2
Post #3836 2.33K

Forwarded from Библиотека программиста

💻 Комфортный сетап и качественное рабочее пространство — это то, что прямо пропорционально влияет на вашу продуктивность. Кто-то тратит на всё это очень большие деньги, а кому-то вообще по барабану, в какой монитор смотреть, на чём сидеть и на что нажимать.

В любом случае эта тема важная и интересная. Смотрите подкаст «Мы обречены» о том, как собрать идеальное рабочее место для программиста:

📺 02:58 — Представление гостей
📺 05:31 — Значение и смысл личного и рабочего комфорта
📺 16:23 — Поднимающийся стол
📺 23:16 — Стул
📺 30:23 — Монитор
📺 45:23 — Клавиатура
📺 1:08:51 — Мышка
📺 1:15:28 — Странные бесполезные устройства
📺 1:21:33 — Умный дом
📺 1:47:52 — Важность комфорта для продуктивности
📺 1:58:07 — С чего начать в осваивании комфорта
📺 2:02:32 — Обнадеживающее аутро

#подкасты
  • 👍 3
  • 🔥 2
Post #3835 2.58K
Решение проблем CORS поддомена в Laravel Herd

Основной фокус статьи — решение проблем с CORS (Cross-Origin Resource Sharing) после миграции на Laravel Herd. Проблема заключается в отсутствии заголовка Access-Control-Allow-Origin для некоторых ресурсов, что приводит к блокировке загрузки JavaScript из-за политики Same-Origin.

Далее, автор предоставляет решение проблемы, предлагая добавить CORS-заголовки вручную. Это можно сделать через терминал с помощью команды или через интерфейс Herd. Автор также указывает на необходимость перезапуска Nginx после внесения изменений.
Niels Vanpachtenbeke Solving subdomain CORS issues on Laravel Herd — Niels Vanpachtenbeke I have been a satisfied Valet user for the past four years, but my recent frustrations with Homebrew have led me to look into Laravel Herd.
  • ❤ 4
  • 🥱 3
  • 🌚 2
Post #3834 2.96K
Что такое opcache? Как он работает?

OPcache (Optimized Cache) — это расширение для PHP, которое осуществляет кэширование скомпилированного байт-кода PHP для улучшения производительности выполнения скриптов.

OPcache работает в нескольких этапах:

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

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

OPcache также предоставляет дополнительные возможности для оптимизации производительности:

- Предзагрузка определяемых классов: OPcache может предзагрузить классы, определенные в скриптах, для ускорения их доступа и использования.

- Контроль за памятью: OPcache имеет механизм управления памятью, который позволяет наблюдать за использованием памяти скриптами и в случае необходимости автоматически очищать кэш.

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

#вопросы_с_собеседований
  • 👍 11
  • ❤ 5
  • 😁 1
Post #3833 2.84K
#memes
  • 😁 43
  • 👍 5
  • 🥱 1
Post #3832 2.76K
Невидимые столбцы MySQL и как их определить с помощью Laravel и Doctrine

В новых версиях MySQL, начиная с v8.0.23, появилась поддержка невидимых колонок. Невидимая колонка по умолчанию скрыта от запросов, но может быть доступна при явном обращении к ней. Ранее все колонки были видимыми.

Создать невидимую колонку можно простым добавлением атрибута INVISIBLE при создании таблицы
DEV Community MySQL invisible columns and how to define it with Laravel and Doctrine Many developers don't know that MySQL now has support for invisible columns. But what exactly is an...
  • 🌚 5
  • ❤ 4
  • 👍 1
Post #3831 2.71K
Stressless — стресс-тестирование с помощью PEST

🔎В ходе LaraconAU представлены две значимые новинки: Laravel Pulse и плагин Stressless от Nuno Maduro, предназначенный для стресс-тестирования приложений.

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

Stressless использует инструмент k6, мощный инструмент с открытым исходным кодом для нагрузочного тестирования, чтобы оценить производительность API, микросервисов и веб-сайтов. Плагин интегрируется с Expectation API в Pest, обеспечивая отсутствие регрессий в стабильности и надежности приложения.
Introducing Stressless - Stress Testing with PEST This week was full of treats for Laravel developers due to LaraconAU. After the launch of Laravel Pulse, Nuno Maduro announced a new plugin called...
  • ❤ 5
Post #3830 2.81K
В этой статье обсуждается, как предотвратить дублирование отправок форм или запросов в приложениях Laravel с использованием атомарных блокировок. Атомарные блокировки помогают управлять распределенными блокировками, не беспокоясь о состязательности.

В примере рассматривается сценарий, в котором пользователь инициирует платежи через форму. Чтобы предотвратить нежелательные последствия, такие как обработка одного и того же запроса несколько раз, представлены атомарные блокировки. Реализация иллюстрируется в SendPaymentController.

Метод Cache::lock используется для создания атомарной блокировки. Он принимает три аргумента: имя блокировки, продолжительность ее действия и необязательный параметр владельца. Имя должно быть уникальным, чтобы избежать коллизий.

В примере SendPaymentController создается блокировка с уникальным именем ({$account->id}:payment:send), которая остается действительной в течение 10 секунд. Если блокировка получена, запрос обрабатывается, и пользователь перенаправляется с сообщением об успехе. Если блокировка не получена, пользователь перенаправляется с сообщением об ошибке.
Daryl Legion Preventing Duplicate Form Submissions Using Atomic Locks Prevent duplicate form submissions and job dispatching using Laravel's atomic locks.
  • ❤ 7
Post #3829 2.56K
#дайджест новостей по PHP за неделю:

🔎Вышел PHP 8.3!

🔎PhpStorm теперь поддерживает PHP 8.3 — На сегодняшний день PhpStorm обеспечивает полную поддержку всех улучшений PHP 8.3.

🔎Выпущена версия Laravel 10.32 — На этой неделе команда Laravel выпустила версию 10.32 с новыми директивами условного нажатия Blade и многим другим.

🔎Выпущена Symfony 7.0.0-RC1 — Только что выпущена Symfony 7.0.0-RC1. Вот список наиболее важных изменений с версии 7.0.0-BETA3.

🔎 Неделя Symfony #881 (13–19 ноября 2023 г.) — В этой сборке вы можете обнаружить несколько улучшений в различных подсистемах.

🔎PhpStorm 2023.3 Beta
  • 👍 9
  • ❤ 2
Post #3828 2.9K
Минимум, который должен знать каждый разработчик программного обеспечения о Unicode в 2023 году

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

Статья подробно рассматривает кодовые точки, приводит примеры (например, буквы латинского алфавита, символы эмодзи), и объясняет, как Unicode решает проблему представления различных языков. Она также затрагивает кодировки UTF-8 и UTF-16, описывая, как они представляют символы в памяти компьютера.

Стоит также обратить внимание на важность использования библиотек для работы с Unicode, особенно при выполнении операций, таких как определение границ графем и нормализация строк.
tonsky.me The Absolute Minimum Every Software Developer Must Know About Unicode in 2023 (Still No Excuses!) Modern extension to classic 2003 article by Joel Spolsky
  • ❤ 4
Post #3827 2.81K
Что скажете про HTMX, использовали ли?🔽🔽🔽
  • 🥱 12
  • 👍 2
  • 🤔 1
Post #3826 3.47K
Безотказные очереди в RabbitMQ: Гарантированная доставка сообщений

Статья представляет RabbitMQ как открытую реализацию протокола AMQP (Advanced Message Queuing Protocol) и мощный брокер сообщений, обеспечивающий эффективное взаимодействие между компонентами системы. Автор фокусируется на безотказных очередях в RabbitMQ и их важности в распределенных системах.🚀

🔑Почему безотказные очереди важны:
🛡️В условиях сбоев и ошибок обеспечение надежной доставки сообщений становится жизненно важным. Безотказные очереди решают эту проблему, гарантируя сохранение сообщений до их успешной доставки, что обеспечивает стабильное взаимодействие между системами.

🤔Проблемы при проектировании решения:
Описывается сценарий, где компоненты системы обмениваются важными сообщениями, и из-за временной недоступности одной системы отправка сообщений может не удаваться.⏳ Решение в «quorum» очередях RabbitMQ предоставляет параметры для контроля попыток отправки, но возникают проблемы с отсутствием встроенной задержки.

🛠️Механизм работы выбранного решения:
Автор представляет механизм обработки сообщений, использующий обменники, первичные очереди, обработку ошибок и механизм повторных попыток.🔄 Он объясняет, как сообщения направляются через различные очереди, как управляется количество попыток и как обеспечивается гибкость и надежность в обработке сообщений.
  • ❤ 4
  • 👍 1
Post #3825 2.99K
Автор столкнулся с ошибкой «Lock wait timeout» при создании многоадресного API с использованием Laravel и трейта RefreshDatabase. Приложение имело базу данных платформы и отдельную базу данных для каждого арендатора, выбираемую во время выполнения на основе ключа API. Тесты, использующие трейт RefreshDatabase, приводили к ошибке времени ожидания блокировки. Причина была обнаружена в переключении базы данных во время выполнения, что сбивало с толку управление транзакциями Laravel. Решением стало использование свойства connectionsToTransact в классе TestCase, указывающего базы данных, участвующие в транзакциях. Это позволило транзакциям охватывать изменение базы данных и устранило проблему времени ожидания блокировки. Кроме того, это гарантировало правильную очистку тестовых данных из обеих баз данных после выполнения тестов.
Conroyp Juggling Databases When Testing With Laravel: Tackling the Lock Wait Timeout Error Discover how to tackle Laravel's testing challenges in multi-database scenarios. Say goodbye to the notorious 'Lock wait timeout' error.
  • ❤ 5
Post #3824 2.8K
Полезные каналы по PHP :

PHP вакансии — @rabotaphp
Вакансии для PHP-разработчиков.

Уютное сообщество пхпшников. Книги — @phpdom
Книги + тесты на знание языка + туториалы и разборы кода

PHP books — @phpbook.
Книги по PHP и смежным технологиям;

Реклама. Киренкина Марина Дмитриевна, ИНН 345702417736. Erid 2VtzqwpUHeH
  • 🥱 3
  • ❤ 1
Post #3823 3.17K
Что такое namespace и зачем они?

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

Зачем используются пространства имен:

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

Организация кода: Пространства имен помогают логически организовать код, разделяя его на логические группы. Например, все классы, связанные с базой данных, могут быть помещены в пространство имен Database.

Автозагрузка классов: Использование пространств имен может сделать автозагрузку классов более эффективной и структурированной, особенно при использовании стандартов автозагрузки, таких как PSR-4.

#вопросы_с_собеседований
  • 🥱 13
  • 👍 5
  • ❤ 1
Post #3821 3.05K
#memes
  • 😁 32
  • 🥱 7
  • 🔥 2
  • 🌚 1
Post #3820 3.13K
Предотвращение спама в формах Statamic

В этой статье рассказывается о том, как добавить службу предотвращения спама к формам в Statamic для отклонения подозрительных отправок. Автор использует Akismet, но подчеркивает, что можно выбрать любую службу предотвращения спама. Шаги включают создание учетной записи Akismet, получение API-ключа и добавление его в файл .env, а также создание слушателя, который вызывается при отправке формы. Для проверки на спам используется метод isSpam, который в данном случае отправляет данные формы на проверку в Akismet.

Также указаны возможные улучшения, такие как отображение спамных отправок в панели управления Statamic и заменяемость службы предотвращения спама на другую.
DEV Community Prevent spam in Statamic forms If you're using Statamic's Forms feature to power a public facing form, you'll benefit from using...
  • ❤ 4
Post #3819 2.91K
#хочу_спросить

Задавайте любые вопросы о программировании и получайте ответы от пользователей. В комментариях под постом укажите #язык, #стек и/или #библиотеку, по которым задаете вопрос.
  • ❤ 4
Post #3818 2.86K
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 →