TGViewer
Channel Public Channel
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter

Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter

@phpproglib

Все самое полезное для пхпшника в одном канале.

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

Учиться у нас: clc.to/M561SQ

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

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Subscribers
10.5K
Photos
1.8K
Videos
31
Links
4.6K

Showing posts older than #5434 · Back to latest

Older Posts 20 shown
Post #5430 3.35K
Установка Laravel 12 с помощью Docker за 8 минут — полное руководство по установке и настройке

Спидран по установке Laravel в докер, после чего сразу можно начать разработку или тестирование кода

👉 Видео

Библиотека пхпшника #буст
YouTube Install Laravel 12 with Docker in 8 Minutes - Full Setup & Configuration Guide #laravel #docker Source code link: https://www.getmakedigital.com/blogs/laravel-12-development/install-laravel-12-with-docker In this video, I'll show you how to install Laravel 12 with Docker in just 8 minutes. Whether you're a beginner or have some experience with Docker…
  • 🥱 11
  • 👍 4
  • 😁 3
  • 🌚 2
  • ⚡ 1
Post #5429 2.9K
#memes
  • 😁 16
  • 👍 3
Post #5427 3.1K
Prism

Унифицированный интерфейс для работы с LLM в Laravel. Поддерживает API Anthropic, DeepSeek, Gemini, Groq, Mistral, Ollama, OpenAI и xAI.

🔗 Github

#инструменты
  • 👍 10
  • 🔥 2
Post #5426 2.76K
🧩 Чистое проектирование контроллеров в Symfony с помощью разрешителей аргументов

Статья рассказывает о механизме разрешения аргументов (argument resolving) в Symfony — процессе, который позволяет автоматически преобразовывать параметры запроса в объекты.

Ранее, до Symfony 6.2, для этого использовался SensioFrameworkExtraBundle с аннотацией @ParamConverter, но теперь эту функцию выполняет встроенный EntityValueResolver. Это позволяет Symfony автоматически превращать идентификатор из URL (например, /messages/{id}) в объект соответствующей сущности (например, Message).

Symfony содержит несколько встроенных резолверов, которые помогают обрабатывать разные типы данных — от объектов запросов (RequestValueResolver) и пользовательских сессий (SessionValueResolver) до работы с датами (DateTimeValueResolver) и UID (UidValueResolver).

Создание кастомного аргумент-резолвера

Иногда стандартных резолверов недостаточно, например, если нужно загружать разные типы сущностей из одного маршрута. В статье рассматривается реальный пример с платформы Respawwwn, где есть разные игровые сессии (Daily, Survival, Collection, Party), но требуется один эндпоинт /api/game-sessions/{id}/complete, который может обработать любую из них.

Чтобы реализовать это, автор создаёт кастомный резолвер (GameSessionValueResolver), который:

✔️ Проверяет, является ли параметр id сущностью типа GameSessionInterface.
✔️ Ищет соответствующую игровую сессию в нескольких репозиториях.
✔️ Возвращает найденный объект, который затем передаётся в контроллер.
✔️ В контроллере этот резолвер подключается с помощью атрибута #[ValueResolver('game_session')], что делает код чище и удобнее.

Преимущества использования аргумент-резолверов

🔸 Чистый код — контроллеры не загромождены логикой преобразования параметров.
🔸 Гибкость — можно легко менять способ обработки параметров, не изменяя контроллеры.
🔸 Повторное использование — один резолвер можно применять в разных местах.
🔸 Тестируемость — можно отдельно протестировать резолвер без необходимости выполнять HTTP-запросы.

👉 Medium
  • 👍 6
  • ❤ 1
Post #5424 2.83K
✅ Проверка того, является ли пользователь гостем в Laravel

Нам часто нужно проверить, прошел ли пользователь аутентификацию, и для этого мы используем метод «check». Но знаете ли вы, что когда вам нужно проверить, является ли пользователь гостем, вы можете использовать метод «guest»? 🚀

Библиотека пхпшника #буст
  • 👍 10
  • ❤ 2
  • 👾 1
Post #5423 3.02K
💻 Внедряем формулы как в Эксель

Пользователи постоянно меняют логику подсчёта? Они не довольны скоростью с которой вы меняете код? Уже надоело так часто менять одно и тоже? Если да, то получайте решение: пускай пользователи сами пишут формулы на языке, который им более знаком: это формулы эксель. От вас потребуется лишь надо научить своё приложение считать это. Как это сделать? С помощью чёрной магии конечно!


🔗 Хабр
  • ❤ 1
  • 🔥 1
  • 🌚 1
  • 👾 1
Post #5422 2.79K
#хочу_спросить

Задавайте любые вопросы о программировании и получайте ответы от пользователей. В комментариях под постом укажите #язык, #стек и/или #библиотеку, по которым задаете вопрос.
  • 👍 3
Post #5421 2.97K
Почему php -r «echo (int) ((0.1+0.7)*10);» выводит 7, а не 8?

В PHP выражение php -r «echo (int) ((0.1 + 0.7) * 10);» выводит 7 вместо ожидаемого 8 из-за особенностей представления чисел с плавающей точкой в компьютерах. Числа, такие как 0.1 и 0.7, не могут быть точно представлены в двоичной системе, что приводит к небольшим погрешностям при вычислениях. В данном случае, результат выражения (0.1 + 0.7) * 10 может быть немного меньше 8, например, 7.999999999999999, и при приведении к целому типу ((int)) дробная часть отбрасывается, давая результат 7.

Рекомендуемые подходы для получения ожидаемого результата:

Округление перед приведением к целому числу:

Используйте функцию round() для округления значения до ближайшего целого перед приведением к типу int:
echo (int) round((0.1 + 0.7) * 10); // выводит 8

Форматирование с заданной точностью:

Примените функцию sprintf() для форматирования числа с определённой точностью перед приведением:
echo (int) sprintf('%.0f', (0.1 + 0.7) * 10); // выводит 8

Использование математических функций произвольной точности:

Для повышения точности вычислений можно использовать функции из расширения bcmath:
echo bcmul(bcadd('0.1', '0.7', 1), '10', 0); // выводит 8
  • 👍 1
Post #5420 2.92K
🔎 Laravel 12.2: Введение пользовательских стартовых наборов
Команда Laravel выпустила версию 12.2.0, включающую метод ddBody() для тестирования ответов, поддержку одиночной модели через HasManyThrough, контекстные ключи для методов increment и decrement, а также возможность создания пользовательских стартовых наборов для React, Vue и Livewire.

🔎 Релизы PHP 8.2.28 и PHP 8.1.32
Команда разработчиков PHP объявила о немедленной доступности версий PHP 8.2.28 и PHP 8.1.32. Эти обновления являются релизами безопасности, и всем пользователям рекомендуется обновиться до этих версий. ​

🔎 Неделя Symfony #950 (10–16 марта 2025 года)
На этой неделе в предстоящей версии Symfony 7.3 обновлены ленивые сервисы для использования нативных ленивых объектов PHP и добавлена возможность определения глобальных параметров перевода. В существующих версиях Symfony исправлена поддержка хуков PHP 8.4 и асимметричной видимости в VarExporter.
  • 👍 4
Post #5419 2.94K
🔥 Ребус: проверяем вашу смекалку

Сможете угадать без гугла?
Ответ пишите в комментах 👇

Библиотека пхпшника #междусобойчик
  • 👾 1
Post #5418 3.05K
#memes
  • 😁 22
  • 💯 6
Post #5417 3.17K
Обеспечение надежности JSON из LLM-ответов в PHP

Эта статья рассказывает о библиотеке LLM-JSON-Cleaner, которая помогает разработчикам работать с JSON-ответами от больших языковых моделей (LLM). Если вы когда-нибудь взаимодействовали с LLM API, то наверняка сталкивались с ситуацией, когда вместо чистого JSON приходят ответы, содержащие дополнительный текст — приветствия, комментарии, пояснения. Даже если четко задать модели формат, она все равно может выдать неидеальный JSON.

Вот тут и пригодится LLM-JSON-Cleaner. Она решает две основные задачи: извлекает JSON из ответов LLM, удаляя весь ненужный текст, и проверяет, соответствует ли этот JSON заданной схеме.

Установить ее очень просто — достаточно выполнить команду composer require edgaras/llm-json-cleaner. После этого можно сразу начинать использовать.

👉 Читать статью
  • 🌚 5
Post #5416 3.18K
🛠 Ускоряем работу в PhpStorm: самые полезные хоткеи

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

🔸 Ctrl + D: дублирование текущей строки или выделенного блока.

🔸 Ctrl + Y: удаление строки под курсором.

🔸 Ctrl + Shift + J: объединение выделенных строк в одну, что упрощает форматирование массивов и HTML-тегов.

🔸 Ctrl + Alt + L: переформатирование кода в соответствии с настройками оформления.

🙂 Пишите в комменты ваши любимые сочетания

Библиотека пхпшника #буст
  • 👍 11
Post #5415 3.56K
php-tokio — Используйте любую асинхронную библиотеку Rust в PHP

Эта библиотека позволяет вам использовать любую асинхронную библиотеку Rust внутри PHP в асинхронном режиме.

Она полностью интегрирована с revolt: это обеспечивает полную совместимость с amphp , PSL и responsephp.

🔗 Github

#инструменты
  • 🔥 15
Post #5414 3.22K
Промт для автоматического документирования PHP-кода с использованием PHPDoc

Если вы хотите, чтобы ваш PHP-код был всегда с отличной документацией, вот пример промта для автоматического создания PHPDoc-блоков:

«Проанализируй следующий PHP-код и сгенерируй соответствующие PHPDoc-блоки для всех классов, методов и свойств. Убедись, что используются правильные теги, такие как @param, @return, @throws, и добавь описания для каждого элемента:



\\Ваш код
»

🔹 Рекомендации по использованию:

🌟 Стандарты оформления: Соблюдайте стандарты PSR-12 для единого оформления и удобочитаемости кода.

🔧 Автоматизация: Используйте инструменты для автоматической генерации документации, такие как phpDocumentor. Это сэкономит вам массу времени и сил.

📅 Поддержание актуальности: Регулярно обновляйте документацию, чтобы она всегда отражала текущий контекст. Это упростит поддержку проекта в долгосрочной перспективе, если такая цель конечно имеется😜

Библиотека пхпшника #буст
  • 👍 5
Post #5413 2.98K
#memes
  • 🥰 6
Post #5412 2.73K

Forwarded from Библиотека хакера | Hacking, Infosec, ИБ, информационная безопасность

🐧 Пингвин, покоривший мир: история взлета Linux – ОС, управляющей 96% серверов

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

➡️ Читать статью
➡️ Зеркало
  • 👍 5
Post #5410 2.85K
💬 Как оставлять комментарии в чате нашего канала

В нашем чате работает бот Shieldy — он защищает от спама, запрашивая у новых участников решение простой капчи.

⚠️ Проблема, с которой сталкиваются многие: вы нажимаете под постом «Прокомментировать», пишете что-то, а потом получаете бан и не можете писать комментарии.

❓Почему так: Shieldy отправляет капчу в сам чат, а не в комментарии под конкретный пост. Из-за этого капчу можно не увидеть, не отправить ответ на нее, и бот автоматически заблокирует вас.

✅ Как присоединиться к чату, чтобы бот вас не забанил

— Зайдите в описание канала с телефона и нажмите кнопку Discuss / Чат
— Нажмите Join / Присоединиться
— Сразу обратите внимание на сообщение от бота Shieldy
— Решите простой пример и отправьте ответ в чат

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

❗️ Если вас все-таки забанили

— Это временная блокировка на несколько минут
— Подождите и попробуйте зайти позже, бот снова отправит вам капчу

Админы канала никак не могут ускорить процесс, бот автоматически снимает с вас блокировку через пару минут. Мы понимаем, что эта система неидеальна, и ищем более удобное решение.

👾 Спасибо, что активно участвуете в обсуждении наших постов!
  • 😢 3
  • ❤ 2
  • 😁 2
  • 🥱 1
Post #5409 2.63K
ℹ️ Laravel: упрощённое мокирование HTTP-запросов в тестах

Как это работает

Laravel предоставляет фасад Http, который позволяет элегантно и просто мокировать HTTP-запросы в тестах, снижая объем кода и повышая читаемость.

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

Http::fake() поддерживает различные типы ответов:

Строковые ответы: 'example.com' => 'Ответ'
Массивы (конвертируются в JSON): 'api.site.com/*' => ['ключ' => 'значение']
Коды статусов: 'service.com' => 204

Преимущества использования

🔸Снижение объёма кода: упрощённый синтаксис делает тесты более компактными.
🔸Улучшенная читаемость: тесты становятся более понятными и поддерживаемыми.
🔸Гибкость: возможность задавать различные типы ответов для разных URL с поддержкой подстановочных знаков.

Где применять

🔹Тестирование интеграций с внешними API.
🔹Мокирование ответов сервисов для проверки обработки различных сценариев.
🔹Снижение зависимости от внешних сервисов при выполнении тестов.

💬 Читать статью
  • ❤ 1
  • 🤩 1
  • 👾 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →