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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Download Telegram
На каком языке программирования вы пишете больше всего?
Anonymous Poll
2%
Python
2%
Go
1%
Java
3%
JavaScript
0%
TypeScript
0%
C/C++
1%
С#
0%
Swift/Kotlin
87%
PHP
3%
Другой
Типичный Swagger без гмо

Здесь рассматривается подход к оптимизации Symfony-контроллера с использованием типизации входных и выходных данных вместо подхода, основанного на Swagger и аннотациях. Автор предлагает переход от базового Request объекта к использованию DTO (Data Transfer Object) с помощью библиотеки prugala/symfony-request-dto.
🌚6👍4🤔1
ShipSaaS Logger

Laravel ShipSaasLogger позволяет отслеживать запросы между серверами, помечая каждый запрос уникальным идентификатором 🆔 для каждой записи в логах
🥱4👍21
#дайджест #phpdevjob

Вакансии недели для Москвы 👨🏻‍🏫

Senior PHP Разработчик в Биг Дата Технолоджи
Москва. Разработка высокотехнологичных решений.
Подробнее

PHP программист в Digital Agency Siart
Москва. Информационные технологии, системная интеграция.
Подробнее

PHP-программист в Пиксель Плюс
Москва. Продвижение, создание и поддержка сайтов, брендинг, дизайн и производство рекламной продукции.
Подробнее

PHP Разработчик в Decart IT-production
Москва. Бизнес-ориентированная группа компаний.
Подробнее

Разработчик на PHP в ИНГЛИШ ТОЧКА
Москва. Онлайн-школа английского языка.
Подробнее

Понравились вакансии?
❤️ — да
🤔 — нет
🤔71👍1
🔥 -50% на курс «Алгоритмы и структуры данных»

😲 В честь черной пятницы курс «Алгоритмы и структуры данных» со скидкой 50% – https://proglib.io/w/3386739b

17 990 рублей 35 990 рублей до 30 ноября

🐣 На курсе вы на практике познакомитесь со сложными алгоритмами и научитесь писать более короткий и эффективный код. И сможете подготовиться к собеседованию крупную IT-компанию.

Что еще вас ждет на курсе:

▪️ 150 практических заданий и 47 видеолекций;

▪️ Бессрочный доступ ко всем материалам курса;

▪️ Развернутая обратная связь по всем домашним заданиям, а также ссылки на полезные дополнительные материалы.

👉 А если вы сомневаетесь подходит ли вам курс, то вы можете начать изучение с вводных занятий, чтобы познакомиться с преподавателями и форматом обучения.

Переходите на сайт и оставляйте заявку на вводные занятия – https://proglib.io/w/3386739b

До встречи на обучении 🙌
👏3🤔3😁1
Как бесплатно разработать бессерверное PHP-приложение с базой данных PostgreSQL с помощью Vercel и Neon.tech

В этой статье описан опыт по бесплатному созданию бессерверного PHP-приложения с использованием таких платформ, как Vercel и Neon.tech.

Важность бессерверных технологий заключается в экономии времени и энергии при разработке PHP-приложений, которые обычно требуют настройки и обслуживания сервера.
👍3
Как работает session в РНР, где хранится, как инициализируется?

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

Сессия инициализируется следующим образом:
Сначала нужно вызвать функцию session_start(), которая инициализирует или возобновляет уже существующую сессию для текущего пользователя. Если сессия уже инициализирована, функция просто возобновляет ее.

После вызова session_start(), PHP создает уникальный идентификатор сессии (называемый session ID), который может быть сохранен в виде cookie на стороне клиента или передан через URL (если отключены куки). ID сессии используется для связи данных сессии между разными запросами.

Данные сессии хранятся на сервере. По умолчанию, PHP сохраняет данные сессии во временной директории на сервере. Местоположение директории можно настроить в php.ini с помощью параметра session.save_path. Каждая сессия имеет свой собственный файл, который называется session file.

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

#вопросы_с_собеседований
🔥14🥱7👍51
Упрощение интеграции API с Http-фасадом Laravel

📝 В статье рассматривается подход к интеграции сторонних API в Laravel с использованием фасада Http. Использование фасада Http Laravel обеспечивает последовательную структуру для всех интеграций сторонних сервисов, упрощает тестирование и мокирование, а также уменьшает зависимость от внешних SDK.

🔍 В примере в статье демонстрируется интеграция API Google Books. Первым шагом является добавление конфигурации API Google Books, включая ключ API, в переменные окружения Laravel. Затем автор создает переиспользуемый класс ApiRequest для построения HTTP-запросов к API с возможностью легкой настройки заголовков, параметров запроса и данных тела.

🚀 Далее представлен абстрактный класс ApiClient, служащий базовым классом для выполнения HTTP-запросов к любому API. Класс предоставляет метод для отправки ApiRequest и включает настройки по умолчанию, такие как прием JSON и базовый URL. Класс GoogleBooksApiClient расширяет этот абстрактный класс, указывая базовый URL для API Google Books и обрабатывая авторизацию, специфичную для данного API, например, передачу ключа API в виде параметра запроса.

📚 В статье также представлен пример действия QueryBooksByTitle, которое использует GoogleBooksApiClient для запроса книг по названию из API Google Books.
👍511🥰1🌚1
Мы запускаем серию исследований — и вы можете нам в этом помочь!
«Библиотека программиста» выпустит несколько статей, в которых мы проведем полноценные исследования.

Помогите нам выбрать интересные темы: может быть, вы давно хотели узнать, как изменилась зарплата у тех, кто релоцировался? Или гадаете, сколько лет нужно, чтобы стать миддлом?

Присылайте интересующие вас темы в комментарии — интересные мы возьмем в работу и поделимся с вами результатами 💙
2🔥1
Как добавить вход по JWT в проект Symfony 6

Здесь показано, как реализовать систему аутентификации с использованием JSON Web Token (JWT) для вашего проекта Symfony 6. Вот основные шаги:

1️⃣Создание проекта Symfony:
Используйте Symfony CLI для создания нового проекта

2️⃣Установка необходимых пакетов:
Установите пакеты для Doctrine ORM, MakerBundle и LexikJWTAuthenticationBundle.

3️⃣Создание сущности пользователя:
Создайте сущность пользователя с помощью MakerBundle, укажите класс, свойства и алгоритм хеширования пароля.

4️⃣Настройка безопасности:
Измените файл config/packages/security.yaml для настройки брандмауэров для входа и конечных точек API.
Определите правила контроля доступа для ограничения доступа к конечным точкам на основе ролей пользователя.

5️⃣Настройка маршрутов:
Определите маршруты для конечных точек входа и API в файле config/routes.yaml.

6️⃣Отправка запроса на вход:
Используйте cURL для отправки POST-запроса к конечной точке входа и получения токена JWT.

7️⃣Создание контроллера API:
Создайте контроллер API с помощью MakerBundle.
Измените контроллер для использования TokenStorageInterface для получения email вошедшего пользователя.

8️⃣Отправка аутентифицированного запроса:
Используйте cURL для отправки POST-запроса к защищенной конечной точке API с полученным токеном JWT.
👍5🥱1
Еще один #дайджест новостей по PHP за неделю:

🔎PhpStorm 2023.3 Beta 2

🔎Выпущена версия CakePHP 5.0.3. — Улучшения включают в себя: Обновление пути к плагину_class_error.php. Расширен тип $format в TimeHelper::format(). Поддержка PHP 8.3 и многое другое.

🔎Выпущена версия Laravel 10.33 — На этой неделе команда Laravel выпустила версию 10.33 с новыми вспомогательными методами чисел, проверочными утверждениями о пакетах, существующих в цепочке заданий, правилом проверки шестнадцатеричного цвета и многим другим.

🔎Выпущена Symfony 6.4.0

🔎Неделя Symfony #882 (20–26 ноября 2023 г.) — На этой неделе деятельность разработчиков Symfony была сосредоточена на исправлении ошибок и доработке новых функций будущих версий Symfony 6.4 и 7.0, которые выйдут на следующей неделе.
👍3😁1🎉1
Laravel 10 представил улучшенный Number Format Helper с функциями, направленными на упрощение форматирования чисел, процентов, валюты, размеров файлов и создания читаемых представлений:

1️⃣Number::format(): Позволяет разработчикам легко форматировать числовые значения в строку, специфичную для локали, поддерживая опции точности, максимальной точности и локали.

2️⃣Number::percentage(): Упрощает получение процентного представления значения, предлагая опции точности и локали для настройки.

3️⃣Number::currency(): Облегчает форматирование денежных значений с опциями для типа валюты и локали, предоставляя удобный способ представления финансовой информации.

4️⃣Number::fileSize(): Предоставляет интуитивный способ представления размеров файлов в читаемом формате с настраиваемой точностью.

5️⃣Number::forHumans(): Предоставляет читаемый для человека формат числовых значений, делая большие числа более понятными и предоставляя чистое представление.
👍9🥱3
Ручная пила для PHP-монолита

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

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

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

Библиотека TSQM представлена как открытое решение, обеспечивающее легкую интеграцию в существующие PHP-монолиты. В статье делается вывод о затратах на использование, планах развития и сравнении с другими решениями, такими как Temporal, указывая на простоту и специфичность применения в качестве основных причин выбора TSQM вместо более сложных альтернатив.
3🥰2🥱2👍1