Библиотека пхпшника | 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
Как расшифровать 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
Как реализовать паттерн проектирования «Адаптер» на PHP, и какие распространенные случаи его использования?

В PHP вы можете реализовать паттерн «Адаптер», чтобы обеспечить работу несовместимых интерфейсов вместе.

В нашем примере:

Adaptee — класс с несовместимым интерфейсом.
Target — интерфейс, ожидаемый клиентом.
Adapter — класс, который адаптирует Adaptee к интерфейсу Target.

Распространенные случаи использования паттерна Адаптер включают:

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

#вопросы_с_собеседований
🔥16👍81
Фасады Laravel

В статье:

— Обсуждается использование фасадов Laravel и оспаривает утверждение, что они не являются настоящими фасадами, а скорее являются прокси. Она утверждает, что при правильном использовании фасадов можно добиться чистого и тестируемого кода. Автор приводит примеры того, как использовать фасады в реальном времени для упрощения тестирования и сделать код более поддерживаемым.

— В первом примере показано, как переработать вызов статического метода в вызов обычного метода с использованием фасадов в реальном времени, что облегчает тестирование без необходимости дополнительных интерфейсов или изменений кода.

— Рассматривается концепция «горячей заменяемости», используя пример диспетчеризации заданий с различными реализациями для тестирования и производственной среды. Показано, как фасады могут упростить переключение между реализациями и сделать код более адаптивным.
👍6
PHP/FI 1. Personal Home Page Tools/Forms Interpreter

История PHP начинается не с полноценного языка программирования, а с набора CGI-скриптов на C, известного как PHP/FI 1. Здесь мы возвращаемся к истокам PHP, рассматривая его первую версию, её компиляцию и функциональность.
👍7