Библиотека пхпшника | 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
Анализатор зависимостей 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
#хочу_спросить

Задавайте любые вопросы о программировании и получайте ответы от пользователей. В комментариях под постом укажите #язык, #стек и/или #библиотеку, по которым задаете вопрос.
❤‍🔥1
#дайджест #phpdevjob

Вакансии PHP разработчиков уровня Junior

▪️Разработчик PHP
Тюмень. Восток.Софт — разработка ПО
Подробнее

▪️PHP-программист
Удаленка. Офис в Барнауле. ИНЛАЙН — разработка и развитие интернет-сервисов в сфере B2B
Подробнее

Вакансии PHP разработчиков уровня Middle

▪️PHP-разработчик
Удаленка. Офис в Ульяновске. Дион Софт — разработка и развитие медицинской информационной системы
Подробнее

▪️PHP разработчик
Удаленка. Офис в Москве. Restaurant Guru — ресурс, в котором собраны лучшие заведения со всех частей света
Подробнее

Вакансии PHP разработчиков уровня Senior

▪️PHP-разработчик
Удаленка. Офис в Москве. АЙТИ.СПЕЙС — разработка, внедрение и сопровождение ПО
Подробнее

▪️Ведущий разработчик PHP
Удаленка. Офис в Москве. Dex — разработка мобильных приложений и web-сервисов
Подробнее

Понравились вакансии?
❤️ — да
🤔 — нет
😁7👍4🥱3🔥1
Финализация классов

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

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

Далее представлен инструмент Swiss Knife, который позволяет автоматически обнаруживать и финализировать классы в проекте, учитывая различные сценарии, такие как классы-родители, сущности Doctrine, классы, которые могут быть промокированы в тестах, и т. д.
2
Реализация кэширования с Redis

В этом видео показано как реализовать кэширование на живом примере.
👏71👍1
ComposerRequireChecker

Инструмент CLI для проверки того, использует ли конкретный пакет composer импортированные символы, которые не входят в его прямые зависимости от composer.
👍4