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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Download Telegram
Автозаполнение вводимых команд в Laravel

При создании опций для CLI-приложений вы можете улучшить UX, реализовав автозаполнение для пользователя. Это можно сделать с помощью метода anticipate, предоставляемого Laravel 🚀

#совет
7
🔍 Can I PHP: проверяем доступность фичи налету

Расширение позволяет проверить доступность определенной функции/метода в различных версиях PHP и получить краткое описание возможностей.

👉 Сайт

#инструменты
👍5
#дайджест #PHPdevjob

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

▪️ PHP разработчик
Офис (Новосибирск), SIBERS
Подробнее

▪️ PHP разработчик
Гибрид (Санкт-Петербург), Глолайм
Подробнее

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

▪️ PHP разработчик
Удалёнка / Офис (Казань), Living Core
Подробнее

▪️ PHP разработчик
Удалёнка, Marfatech
Подробнее

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

▪️ Разработчик PHP
Гибрид (Москва) / Удалёнка, СИГМА
Подробнее

▪️ PHP разработчик (Symfony)
Удалёнка, АльфаСтрахование
Подробнее

Понравились вакансии?
❤️ — да
🤔 — нет
3👍1
👨‍💻 Пусть Т9 продолжит фразу за вас:

Как же меня бесит в IT...
🎉1
Вакансии «Библиотеки программиста» — ждем вас в команде!

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

Подробности тут

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

Ждем ваших откликов 👾
🕧 Название инструмента: генерим одноразовые пароли в Laravel для входа в систему

Пакет предоставляет безопасный одноразовый пароль (One Time Password, OTP) по электронной почте пользователя.

🎯 Основные возможности:

— контроль трафика;
— настраиваемый срок действия;
— Недействителен после первого использования
— Заблокирован на сессии пользователя
— Признание недействительным после слишком большого количества неудачных попыток
— Подробные сообщения об ошибках
— Настраиваемый шаблон письма
— Проверяемые логи

🔗 Ссылка на Гитхаб

#инструменты
Какова разница между «регулярным выражением» и «выражением с подстановочными символами» в PHP, и как их использовать?

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

Регулярные выражения:

Регулярные выражения (regex) — это мощные инструменты для поиска шаблонов и манипуляции текстом.
Они позволяют определять сложные шаблоны поиска с использованием формального синтаксиса.
Шаблоны regex могут соответствовать определенным символам, диапазонам символов, повторениям, альтернативам и т. д.
PHP предоставляет встроенные функции, такие как preg_match(), preg_match_all(), preg_replace() и т. д., для работы с регулярными выражениями.
Регулярные выражения более гибкие и универсальные по сравнению с выражениями с подстановочными символами.

Выражения с подстановочными символами:

Выражения с подстановочными символами проще и более ограниченные по сравнению с регулярными выражениями.
Они используют специальные символы, такие как * (соответствует нулю или более символам) и ? (соответствует ровно одному символу), для представления шаблонов.
Выражения с подстановочными символами часто используются при операциях с файловой системой, таких как поиск файлов по их именам.
PHP предоставляет функции, такие как glob(), для работы с выражениями с подстановочными символами при операциях с файловой системой.
6👍4🤔1
Уязвимость Host Header Injection: Риски и Способы Защиты в Laravel

Host Header Injection — это уязвимость, возникающая, когда веб-приложение доверяет заголовку Host, полученному в HTTP-запросах, без проверки. Это может привести к ряду опасных сценариев:

🔸Перенаправление пользователей на вредоносные сайты.
🔸Подделка ссылок для сброса пароля.
🔸Манипуляции с поведением сервера.

Как это проявляется в приложениях Laravel?
Если Laravel-приложение использует заголовок Host для принятия критически важных решений без проверки, это создает серьезный риск.

В первом примере ссылка для сброса пароля формируется напрямую из заголовка Host. Злоумышленник может отправить запрос с поддельным заголовком.

Как защитить Laravel-приложение от Host Header Injection?

1. Проверка заголовка Host
Вместо использования заголовка Host используйте переменную APP_URL из файла конфигурации .env

2. Ограничение доверенных хостов

Используйте middleware trustedproxies, чтобы разрешить запросы только с доверенных хостов. В файле config/trustedproxy.php настройте параметр host

3. Корректная настройка APP_URL
Убедитесь, что в файле .env указано правильное значение:
APP_URL=https://yourdomain.com


Проверка на уязвимость

Для проверки приложения на уязвимость можно использовать бесплатные инструменты для анализа безопасности.
👍2😁1
🤖Подключение чата DeepSeek к Алисе

Подробный гайд по интеграции GPT в колонку Алисы с использованием DeepSeek. Внутри — пошаговая настройка PHP-хостинга, секретов и навыков в Яндекс.Диалогах. В результате получаете умного помощника, способного отвечать на вопросы с помощью возможностей GPT.

👉 Читать гайд
🔥4🥰2🥱2
📚 ТОП-10 свежих и актуальных книг по PHP для новичков и профессионалов

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

👉Читать далее
🥱3👍1🌚1
Что выведет код?
😢2🤩2
🛠️ Batch vs Stream Processing: ключевые различия

Batch Processing — обработка данных партиями с последующим выводом финального результата.

Stream Processing — обработка данных в режиме реального времени по мере их поступления.

Подробнее см. на изображении. ⚡️

#инфографика
👍1
Подборка новостей по PHP за неделю:

🔎 Представлен CakePHP 5.1: упорядочены зависимости композитора, lib-ICU уже является неявной зависимостью через intl, проведены незначительные оптимизации за счет удаления избыточных присваиваний, проверок empty() и isset().

🔎 Поддержка файлов .env теперь встроена в PhpStorm, что устраняет необходимость хардкодинга этих значений в коде приложения.

🔎 В Laravel 11.38 добавлено правило валидации Fluent Email. Команда Laravel выпустила версию 11.38, в которой появилось правило валидации Fluent Email, возможность получения запроса формы или значения Fluent в виде массива, конвейерный метод finally() и многое другое.

🔎Вышли PHP 8.4.3 и PHP 8.3.16! — Это баг-фикс релизы.

🔎Неделя Symfony #942 (13-19 января 2025 года)

#дайджест
🔥3
💻Как загрузить больше данных с помощью ajax пагинации при прокрутке в laravel 11

В этой статье показано шаг за шагом, как загрузить больше данных с помощью ajax-пагинации при прокрутке в приложении laravel 11

👉Читать гайд

#туториал
🥱2👍1
⬆️Загружаемые трейты

Знаете ли вы, что Laravel автоматически загружает трейты, если они реализуют метод boot[TraitName]? Это позволяет вам легко определить общую логику для событий модели 🚀

#совет
🤔9👍1👾1
🗂️Библиотека: разделение базового файла PHPStan

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

Основные возможности:

🔸Разделение базового файла: Пакет разбивает общий файл phpstan-baseline.neon на отдельные файлы в директории baselines/, где каждый файл соответствует конкретному идентификатору ошибки.

🔸Поддержка форматов: Поддерживаются как форматы neon, так и php для базовых файлов.

🔗 GitHub

#инструменты
👍3
SOAP vs REST. В чем разница?

1. Принцип взаимодействия:

SOAP (Simple Object Access Protocol): Использует протокол XML для обмена сообщениями. Обычно отправляет запросы через HTTP, SMTP или другие протоколы.
REST (Representational State Transfer): Основан на простых HTTP методах (GET, POST, PUT, DELETE) и работает с ресурсами (например, URL). Возвращает данные в форматах JSON, XML или других текстовых форматах.

2. Простота и гибкость:

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

3. Формат данных:

SOAP: Обычно использует XML для обмена данными, что может привести к большому объему сообщений из-за тегов и атрибутов XML.
REST: Часто использует JSON для передачи данных, что более компактно и легче читать для человека.

4. Состояние (Statelessness):

SOAP: Может поддерживать состояние сессии между запросами, что означает, что сервер должен помнить состояние клиента.
REST: Считается безсостоятельным (stateless), каждый запрос от клиента содержит всю необходимую информацию, и сервер не хранит состояние между запросами.

5. Безопасность:

SOAP: Предоставляет стандартизированные механизмы безопасности, такие как WS-Security, что делает его более подходящим для более критичных по безопасности приложений.
REST: Основывается на протоколе HTTPS для обеспечения безопасности передачи данных, но может потребовать дополнительных мер безопасности, таких как токены авторизации.

6. Кэширование:

SOAP: Поддерживает кэширование, но требует сложной настройки на стороне клиента и сервера.
REST: Имеет встроенную поддержку кэширования через HTTP методы, что упрощает процесс.

7. Использование веб-стандартов:

SOAP: Использует стандарты WSDL (Web Services Description Language) и UDDI (Universal Description, Discovery, and Integration) для описания веб-сервисов и их местоположения.
REST: Не имеет формальных стандартов описания интерфейсов, но использует стандарты HTTP и URI для доступа к ресурсам.
Эти различия имеют важное значение при выборе между SOAP и REST в зависимости от требований проекта. SOAP часто используется в корпоративных приложениях, требующих высокой надежности и безопасности, в то время как REST чаще используется в открытых API и веб-приложениях, где важна гибкость и простота использования.

#вопросы_с_собеседований
👍42😁1
💊Советы по оптимизации памяти в PHP

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

В статье содержатся несколько ключевых советов по оптимизации использования памяти в PHP.

🔗Medium
👍3😢2