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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Download Telegram
Пользовательские настройки в приложениях Symfony с JBtronics/Settings-Bundle

Это руководство по использованию пакета jbtronics/settings-bundle в Symfony для управления настройками приложения. Основная идея заключается в том, что параметры настроек организованы вокруг классов, что обеспечивает типобезопасность и удобство разработки.
2
Предупреждение для всех, кто использует PHP

Серьёзная уязвимость была обнаружена в GLIBC, что может привести к вмешательству в PHP-сайты по всему миру. Смотрите это в этом видео.
🤔7🥱6🔥21
PHP в 2024 году

В 2024 году значительно вырос интерес к php и здесь описываются причины этого:

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

🔸FrankenPHP, представляющий собой сервер приложений для PHP, написанный на Go, который значительно повышает производительность существующих PHP-приложений.

🔸Успех Laravel и его экосистемы, в том числе инструмента Laravel Livewire, который позволяет создавать интерактивные приложения без использования JavaScript.

🔸Растущий интерес к PHP со стороны разработчиков из других сообществ, таких как JavaScript, и рост экосистемы благодаря Composer и Packagist, которые достигли отметки в 100 миллиардов загрузок.
👍41👏10😁4
Еще один #дайджест новостей по PHP за неделю:

🔎Команда Laravel выпустила v11.5 — улучшение производительности Blade, создание URL-адресов с параметрами запроса и многое другое.

🔎Привязка свойств(Property Hooks) в PHP 8.4 — Property Hooks RFC преодолела важный рубеж, получив подавляющее число голосов «за» — 34, и только 1 голос «против». Это намного выше требуемого большинства в 2/3 голосов, необходимого для принятия решения.

🔎Неделя Symfony #903 (15-21 апреля 2024 г.)
👍71
Мастерство изменения легаси кода

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

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

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

🟢Эффективное измерение прогресса: Простое отчетность по метрикам без действенных выводов может быть контрпродуктивной. Важно сосредоточиться на значимых метриках, которые способствуют реальному прогрессу, а не утонуть в данных.

🟢Смещение фокуса с ошибок на успехи: Постоянное подчеркивание ошибок может привести к культуре стыда, а не к празднованию успехов. Важно сохранять позитивное отношение и сосредотачиваться на прогрессе.

🟢Преодоление паралича выбора: Слишком много вариантов может привести к параличу выбора. Разбиение задач на меньшие, управляемые шаги может помочь преодолеть этот паралич и способствовать прогрессу.

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

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

🟢Конкретные стратегии обновления: В статье описаны конкретные стратегии обновления различных аспектов устаревших проектов, таких как уровни PHPStan, наборы Rector, типовые объявления и обнаружение неиспользуемого кода.
🌚3👏1🎉1
🦾🧠🏋Качаем мозги к лету!

Все качают пресс, а мы — мозги, чтобы получить крутой оффер, уехать на Бали и больше не быть онлайн 😎

⚡️Распродажа Proglib.Academy: с 24 апреля до 5 мая — скидка 40% на все наши курсы!

➡️ Математика для Data Science 29 990 ₽ 17 994 ₽

➡️ Алгоритмы и структуры данных 35 990 ₽ 21 594 ₽

➡️ Основы программирования на Python 19 990 ₽ 11 994 ₽

Почему мы?

⭐️Курсы разрабатывались при поддержке топовых преподавателей из Яндекса, Сбера, МГУ
⭐️У нас есть менторы, которые поддерживают студентов на каждом этапе
⭐️Мы разбираем задачи с реальных собеседований в крупнейшие компании и готовим к поступлению в ШАД
⭐️Вход с любого уровня: например, на курсе математики сначала освежаем знания из школьной программы

Save the dates!
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥1
Анализатор зависимостей Composer

Быстрое обнаружение проблемных зависимостей

💪Обнаруживает неиспользованные, теневые и неуместные зависимости композера
Сканирование 15 000 файлов за 2 секунды
🕸️ Легкий вес: нет зависимостей
🍰 Простой в использовании
Совместим: PHP 7.2 — 8.3
6🔥1
Как расшифровать 644 в правах на файл в Linux?

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

Права доступа к файлу представлены тремя группами: для владельца (user), для группы (group) и для остальных (others). Каждая группа состоит из трех битов, представляющих права на чтение (read), запись (write) и выполнение (execute).

Теперь, чтобы расшифровать число 644:

🔸Первая цифра (6) относится к правам владельца файла.
🔸Вторая цифра (4) относится к правам группы.
🔸 цифра (4) относится к правам остальных пользователей.

Теперь преобразуем эти числа в бинарный вид:

🟢6 = 110 в двоичной системе (rw-)
🟢4 = 100 в двоичной системе (r--)
🟢4 = 100 в двоичной системе (r--)

Таким образом, права доступа для файла 644 в Linux будут следующими:

✔️Владелец файла имеет права на чтение и запись (rw-)
✔️Группа имеет право только на чтение (r--)
✔️Остальные пользователи также имеют право только на чтение (r--)

#вопросы_с_собеседований
👍113😁1
Недавний релиз Laravel 11.4 ввел фасад Exceptions, упрощающий проверку исключений в обработчике исключений. Теперь вместо withoutExceptionHandling() можно использовать Exceptions::fake(). Это избавляет от необходимости ручного захвата исключений при проверке.
👍11😁6👾21🎉1
🗺️💼 Из Москвы в Дублин: опыт российского разработчика из Amazon

В этой статье я расскажу о культурных и профессиональных отличиях, с которыми мне пришлось столкнуться, переезжая из России в Латвию, а затем и в Ирландию. Надеюсь, мой опыт поможет вам понять, чего можно ожидать от такого серьезного шага.

Читать статью
👍4😁3🎉2
Улучшите свои запросы в Laravel Eloquent с помощью Tappable Scopes

Статья об использовании «tappable scopes» в Laravel объясняет, как этот паттерн может упростить и абстрагировать сложные запросы. Вместо использования обычных методов областей запросов, автор предлагает использовать «tappable scopes» для более чистого и повторного использования кода.

Первоначально объясняется базовое использование «tappable scopes» на примере опубликованных записей и комментариев. Затем автор демонстрирует, как добавить параметры в «tappable scopes», что делает их более гибкими.

Наконец, представляется более сложный пример, где «tappable scope» используется для запроса последних опубликованных записей с автором и количеством комментариев. Это уменьшает сложность запроса и делает его легко настраиваемым для разных частей приложения.
🥱104🤔2👍1
💬 Куда вы предпочитаете обращаться за подсказками, если нужно сделать что-то новое?

❤️ — YouTube-туториалы
👍 — документация

#интерактив
👍11712
10 лучших фреймворков для тестирования на 2024 год

Это обширный обзор различных PHP-фреймворков для тестирования, их преимуществ и сферы применения. Подчеркивается важность выбора фреймворка на основе требований проекта и выделяет десять популярных PHP-фреймворков для тестирования, включая как популярные PHPUnit, Codeception, Selenium, так и менее популярные, но заслуживающие внимания.

Фреймворки оцениваются на основе таких факторов, как удобство использования, поддержка структуры кода, эффективность тестирования, избежание дублирования кода и анализ покрытия тестами.
😁3👍1🔥1🥱1
Какова цель сервис провайдеров в Ларавеле?

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

Сервис-провайдеры определяются в каталоге app/Providers и регистрируются в файле config/app.php.

Это пример сервис-провайдера, который регистрирует маршрут

#вопросы_с_собеседований
🌚11👍7🥱3
Переосмысление моков: DIY подход против фреймворков на примере PHP и TypeScript

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

Также рассматриваются различные типы тестовых двойников и обсуждаются преимущества и недостатки двух методов мокирования. Авторы рекомендуют использовать собственные моки для повышения устойчивости и простоты тестирования в долгосрочной перспективе.
5👍2🤔2🔥1
👩‍💻Функция Str::mask в Laravel может использоваться для замены конфиденциальной информации, например номера кредитной карты, на символы-заменители. Это позволяет сохранять безопасность конфиденциальных данных клиентов.

🔸Эта функция заменяет после 4 символов и оставляет последние 4 символа в строке на символы «*». Таким образом, конфиденциальная информация остается скрытой, но при этом сохраняется достаточно информации, чтобы использовать ее для нужных действий, например для проверки транзакций.
🔥16👍41