phpshka | Unsorted

Telegram-канал phpshka - PHP Academy

9708

@workakkk - с вопросами

Subscribe to a channel

PHP Academy

PHP снова удивил — вышла версия 8.5, и обновление оказалось заметно полезнее, чем многие ожидали.

Что появилось:

— Pipe-оператор — теперь можно передавать данные по цепочке функций без вложенного хаоса
— clone with — адекватный способ изменять поля при клонировании объекта
— Константные замыкания — их теперь можно использовать даже в атрибутах
— Backtrace для fatal-ошибок — больше не нужно искать точку поломки вслепую
— array_first() и array_last() — наконец-то добавили самые очевидные функции для массивов
— Новый URI-парсер
— Несколько мелких исправлений и улучшений

Обновление выглядит свежо и показывает, что PHP всё ещё развивается и движется в сторону современного языка.

https://wiki.php.net/todo/php85

Читать полностью…

PHP Academy

🔥 Подборка полезных ресурсов для программистов.

Здесь ты найдёшь всё это - коротко, по делу и без воды.
Пока другие ищут, где “подглядеть решение”, ты уже используешь самые свежие инструменты!

AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Devops: t.me/DevOPSitsec
Собеседования DS: t.me/machinelearning_interview
C++ t.me/cpluspluc
Docker: t.me/DevopsDocker
Хакинг: t.me/linuxkalii
Data Science: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_1001_notes
Java: t.me/java_library
Базы данных: t.me/sqlhub
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Golang: t.me/Golang_google
React: t.me/react_tg
Rust: t.me/rust_code
ИИ: t.me/vistehno
PHP: t.me/phpshka
Android: t.me/android_its
Frontend: t.me/front
Big Data: t.me/bigdatai
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
Разработка игр: /channel/gamedev
Haskell: t.me/haskell_tg
Физика: t.me/fizmat

💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: /channel/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: /channel/addlist/mzMMG3RPZhY2M2Iy
Папка Linux:/channel/addlist/w4Doot-XBG4xNzYy

😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno

🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: /channel/addlist/BkskQciUW_FhNjEy

Сохрани себе, чтобы не потерять!

Читать полностью…

PHP Academy

Сегодня хочу поговорить о теме, которая часто мешает PHP-разработчикам писать красивый и устойчивый код - магические методы.

Да, те самые __get, __set, __call, __toString и компания. Они вроде бы удобные: можно ловко обращаться к несуществующим свойствам, вызывать методы, которых нет, и всё работает. Но вот вопрос — а как это тестировать и поддерживать?

Когда код полагается на магию, отладка превращается в игру «угадай, откуда взялось это значение». IDE не подсказывает типы, автодополнение не работает, а дебаггер видит лишь хаос. Я не говорю, что магические методы нужно запретить. Они бывают полезны, например, в паттерне Proxy или для ленивой загрузки. Но использовать их стоит осознанно, с понятным контрактом.

👉 Советы от меня:

- Если хочешь гибкости — лучше внедри __call через интерфейс или трейт с чёткой логикой.
- Если используешь __get / __set — документируй все «виртуальные» свойства в phpdoc.
- И главное - не прячь логику под магию. Пусть код говорит сам за себя.

Читать полностью…

PHP Academy

Совет по Laravel💡

Знаете ли вы .... tap() = Tweak and Return 🪄

Да, в Laravel метод tap() позволяет изменить объект и вернуть его обратно — идеально для чистого и читаемого кода.

Читать полностью…

PHP Academy

🚀 How to: защититься от гонок данных в Laravel с помощью Cache::lock()

Когда несколько процессов одновременно пытаются изменить один и тот же ресурс, появляется риск race condition — непредсказуемых ошибок и потери данных.
В Laravel есть элегантное решение — Cache::lock(), которое помогает реализовать атомарные блокировки даже в распределённых системах.

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

Вы создаёте именованный лок (Cache::lock("key", $seconds)), который «занимает» ресурс.

Пока лок удерживается, другие процессы не смогут выполнить код внутри него.

По окончании работы лок освобождается (или снимается автоматически по таймауту, если процесс «упал»).

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

🔄 Обновление стока в интернет-магазине: гарантировать, что количество товара не «улетит» в минус при одновременных заказах.

💳 Финансовые транзакции: исключить двойное списание при параллельных платежах.

⚡️ Почему это удобно


Работает с Redis, Memcached и другими драйверами.

Таймаут защищает от «вечных» блокировок.

Минимальная нагрузка, но максимум безопасности для критичных операций.

👉 Если у вас распределённые воркеры или несколько серверов, используйте Cache::lock() для критичных секций кода. Это простой способ сохранить целостность данных и избавиться от коварных багов конкурентности.

🔗 Ссылка на статью

Читать полностью…

PHP Academy

🖥 Полный гайд: защита от SQL-инъекций для разработчиков

SQL-инъекции остаются одной из самых частых и опасных уязвимостей в веб-приложениях. Ошибка в одном запросе — и злоумышленник получает доступ к базе данных, паролям и пользовательским данным.

В этом материале — полный практический разбор:
как именно происходят SQL-инъекции, какие ошибки разработчиков к ним приводят, как их распознать в коде и главное — как защититься.

Разберём реальные примеры на Python, PHP и Go, посмотрим, как атакующий «взламывает» запрос, и научимся писать безопасный код с параметризованными запросами и ORM.

Это не теория, а руководство, которое поможет понять уязвимость изнутри и навсегда закрыть её в своих проектах.

👉 Читать гайд

Читать полностью…

PHP Academy

🖥 Гайд по PostgreSQL для продвинутых разработчиков

PostgreSQL – одна из самых мощных СУБД с открытым исходным кодом. Этот гайд подробно охватывает ключевые аспекты PostgreSQL: от внутренней архитектуры до приёмов оптимизации. Мы рассмотрим администрирование, производительность, расширения, инструменты, а также сравним популярные ORM для Python и Go. В конце приведён список продвинутых вопросов, часто встречающихся на собеседованиях.

🟠Гайд

Читать полностью…

PHP Academy

Совет по Laravel💡

Знаете ли вы... В Laravel есть метод `withProgressBar()`, который позволяет добавлять прогресс-бары к консольным командам.

#Laravel

Читать полностью…

PHP Academy

💡Совет по Laravel

Определение языка пользователя

Laravel использует компонент HttpFoundation из Symfony, который предоставляет полезные возможности. Если вы работаете с локализацией и нужно определить предпочитаемый язык пользователя, просто вызовите метод getPreferredLanguage 🚀

Читать полностью…

PHP Academy

💡Знал ли вы, что…

Метод Number::abbreviate в Laravel преобразует сложные числа в удобочитаемый формат:

Читать полностью…

PHP Academy

Парсим как про — представляем сборник из библиотек, сервисов и локальных тулзов для сбора информации.

• Тянет всё: картинки, видео, метаданные, аудио, документы, теги, SEO-данные, метрики сайтов, посещаемость и многое другое.
• В основе — Python, PHP, JS и Go, самые актуальные языки для парсинга.
• Сервисы имитируют поведение живого пользователя и обходят любые ограничения: от капчи до сложных защит.
• К каждому инструменту есть подробная инструкция — разберётся даже школьник.
• Всё регулярно обновляется и поддерживается разработчиками.

https://github.com/lorien/awesome-web-scraping

Читать полностью…

PHP Academy

Совет по PHP/Laravel 🚀

Когда у вас есть два случая для кастомных исключений, относящихся к одному и тому же домену, вместо создания нескольких классов исключений можно использовать один класс с разными методами!

Так код будет чище и лучше структурирован! 💪🔥

Читать полностью…

PHP Academy

⚡️ Gemini API PHP Client

Клиент Google Gemini API для PHP позволяет вам использовать модель искусственного интеллекта Gemini.

Установка

composer require gemini-api-php/client


Базовая генерация текста


use GeminiAPI\Client;
use GeminiAPI\Resources\Parts\TextPart;

$client = new Client('GEMINI_API_KEY');
$response = $client->geminiPro()->generateContent(
new TextPart('PHP in less than 100 chars'),
);

print $response->text();
// PHP: A server-side scripting language used to create dynamic web applications.
// Easy to learn, widely used, and open-source.


https://github.com/gemini-api-php/client

Читать полностью…

PHP Academy

Нашли для вас мощный плагин для веба и SEO-оптимизации

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

Сохраняйте, чтобы не потерять

Читать полностью…

PHP Academy

Совет по PHP/Laravel 🚀

Когда у вас есть два случая для кастомных исключений, относящихся к одному и тому же домену, вместо создания нескольких классов исключений можно использовать один класс с разными методами!

Так код будет чище и лучше структурирован! 💪🔥

Читать полностью…

PHP Academy

🛠 Git-лайфхак в PhpStorm

Если часто работаешь с Git прямо из PhpStorm, есть один суперполезный трюк, который экономит кучу времени: интерактивный rebase через IDE.

🔍 Что это?

Вместо того чтобы открывать терминал и писать git rebase -i, можно делать интерактивное редактирование коммитов прямо в PhpStorm: объединять, редактировать сообщения или менять порядок коммитов.

⚡️ Как использовать?

1. Открой меню VCS → Git → Rebase → Interactive…

2. Выбери ветку, относительно которой хочешь сделать rebase.

3. В открывшемся списке коммитов можно:

• Edit — изменить сообщение или содержимое коммита

• Squash — объединить коммиты

• Reword — только изменить сообщение

• Drop — удалить коммит

Все изменения применяются прямо из интерфейса — никаких терминальных ошибок и лишних команд.

💡 Почему это круто?

Меньше ошибок при редактировании истории

Не нужно помнить синтаксис git rebase -i

Быстро объединяешь коммиты перед пушем

Полная визуализация истории прямо в IDE

Читать полностью…

PHP Academy

«И мы назвали это index.php, и оно… делало… всё…»

Читать полностью…

PHP Academy

На Stepik вышел курс - Linux: полный апгрейд твоих скиллов

Хочешь реально понимать, что происходит под капотом твоей системы, а не просто кликать по GUI?

Без глубокого знания базы ты не инженер - ты просто пользователь.

🔹 В курсе ты:

- Освоишь bash, grep, sed, awk - инструменты, которыми живут админы.
- Разберёшь права, процессы, сеть, файловую систему и научишься чинить всё, что падает.
- Настроишь SSH, firewall, systemd, crontab, демоны и автозапуск.
- Научишься анализировать логи, следить за нагрузкой, и не паниковать при 100% CPU.

💡 Формат: пошаговое объяснение базы и разбор важных практик по работе с Linux.

🎯 После курса ты: будешь чувствовать Linux как родную среду и забудешь, что такое “permission denied”.

🚀 Сейчас действуют скидка целых - 30%, не упусти реальный шанс прокачаться.

👉 Пройти курс на Stepik

Читать полностью…

PHP Academy

🚀 Если производительность является приоритетом в вашем проекте, возможно, стоит полностью отключить lazy loading.

Eloquent выбросит огромное исключение, если вы попытаетесь обратиться к связи, которая не была загружена заранее (eager-loaded).

Читать полностью…

PHP Academy

⚡️ CPX

Это как npx но для PHP. Этот инструмент позволяет выполнить любую команду из любого пакета Composer, даже если он не установлен в вашем проекте.

🔗https://github.com/imliam/cpx

Читать полностью…

PHP Academy

Совет по Laravel💡: Встроенная валидация

Хотя Laravel предлагает множество правил валидации, иногда возникает необходимость в использовании пользовательских правил. Обычно они записываются в пользовательском классе. Но знаете ли вы, что можно выполнять и валидацию в строке? 🚀

#vardump

Читать полностью…

PHP Academy

🚀 Мониторинг PostgreSQL с pgexporter

pgexporter — это экспортер для Prometheus, который позволяет отслеживать работу нескольких экземпляров PostgreSQL. Он поддерживает безопасное соединение через TLS и предоставляет различные метрики для мониторинга.

🚀 Основные моменты:
- Экспортер для Prometheus
- Поддержка JSON и удаленного управления
- Режим демона
- Безопасность через TLS v1.2+
- Использует нативный протокол PostgreSQL

📌 GitHub: https://github.com/pgexporter/pgexporter

Читать полностью…

PHP Academy

🔥 Успех в IT = скорость + знания + окружение

Здесь ты найдёшь всё это — коротко, по делу и без воды.
Пока другие ищут, где “подглядеть решение”, ты уже используешь самые свежие инструменты!

AI: /channel/+EPEFXp67QfIyMjMy
Python: /channel/+cq7O4sOHldY1ZTIy
Linux: t.me/linuxacademiya
Собеседования DS: t.me/machinelearning_interview
C++ t.me/cpluspluc
Docker: t.me/DevopsDocker
Хакинг: t.me/linuxkalii
Devops: t.me/DevOPSitsec
Data Science: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_1001_notes
Java: t.me/java_library
Базы данных: t.me/sqlhub
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Golang: t.me/Golang_google
React: t.me/react_tg
Rust: t.me/rust_code
ИИ: t.me/vistehno
PHP: t.me/phpshka
Android: t.me/android_its
Frontend: t.me/front
Big Data: t.me/bigdatai
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
Разработка игр: /channel/gamedev
Haskell: t.me/haskell_tg
Физика: t.me/fizmat

💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: /channel/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: /channel/addlist/mzMMG3RPZhY2M2Iy

😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno

🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: /channel/addlist/BkskQciUW_FhNjEy

Подпишись, если хочешь быть в числе тех, кого зовут в топовые проекты!

Читать полностью…

PHP Academy

🚀 Pipe operator в PHP 8.5 — меньше вложенности, больше читаемости

PHP 8.5 завез мощную штуку — оператор пайпа (|>), и это реально меняет стиль кода.

Раньше:

$result = trim(str_shuffle(strtoupper("Hello World")));


Или ещё хуже — с кучей временных переменных:

$result = "Hello World";
$result = strtoupper($result);
$result = str_shuffle($result);
$result = trim($result);

Теперь:
$result = strtoupper("Hello World")
|> str_shuffle(...)
|> trim(...);

Каждая операция читается как шаг рецепта — слева направо. Код становится декларативным, не запутанным и без временных переменных.

🎯 Реальный пример: обработка email'а из формы

$result = $_REQUEST['email']
|> fn($e) => strtolower($e)
|> fn($e) => filter_var($e, FILTER_VALIDATE_EMAIL)
|> fn($e) => sendEmail($e, "Welcome!");

echo $result ? "Sent!" : "Error";

🔥 Минимум шума, максимум сути.

Pipe — мелкая синтаксическая штука, но она делает код ближе к тому, как вы мыслите.
С PHP 8.5 пишем как люди.

Читать полностью…

PHP Academy

💡 Совет по Laravel

Передавайте большие файлы без перебоев, используя потоки.

Читать полностью…

PHP Academy

Скачиваем весь YouTube в один клик — мощный загрузчик на PHP сохраняет любые ролики прямо на комп.

• Работает стабильно, без багов и сбоев.
• Тянет любые видео и даже целые плейлисты.
• Поддерживает параллельные загрузки для экономии времени.
• Запускается локально — никто не узнает, что вы качаете.
• Установка занимает всего секунду.

Пробуем тут.

Читать полностью…

PHP Academy

🔥 Успех в IT = скорость + знания + окружение

Здесь ты найдёшь всё это — коротко, по делу и без воды.
Пока другие ищут, где “подглядеть решение”, ты уже используешь самые свежие инструменты!

AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Собеседования DS: t.me/machinelearning_interview
C++ t.me/cpluspluc
Docker: t.me/DevopsDocker
Хакинг: t.me/linuxkalii
Devops: t.me/DevOPSitsec
Data Science: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_1001_notes
Java: t.me/java_library
Базы данных: t.me/sqlhub
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Golang: t.me/Golang_google
React: t.me/react_tg
Rust: t.me/rust_code
ИИ: t.me/vistehno
PHP: t.me/phpshka
Android: t.me/android_its
Frontend: t.me/front
Big Data: t.me/bigdatai
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
Разработка игр: /channel/gamedev
Haskell: t.me/haskell_tg
Физика: t.me/fizmat

💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: /channel/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: /channel/addlist/mzMMG3RPZhY2M2Iy

😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno

🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: /channel/addlist/BkskQciUW_FhNjEy

Подпишись, если хочешь быть в числе тех, кого зовут в топовые проекты!

Читать полностью…

PHP Academy

💡 Совет по Laravel

Не позволяй запросам к базе данных замедлять работу. Используй фасад Cache в Laravel для временного кэширования данных и сокращения количества обращений к базе.

Читать полностью…

PHP Academy

💡Совет по Laravel: Проверка дат с помощью Carbon

Уверен, тебе хоть раз приходилось проверять, истекла ли дата или находится в будущем.
Так как Laravel под капотом использует Carbon, у тебя есть доступ к множеству удобных методов, которые позволяют делать это элегантно 🚀

Читать полностью…

PHP Academy

💡 Laravel-хак для удобной разработки (DX)

Добавьте PHPDoc к моделям Eloquent, чтобы улучшить:

🧠 автодополнение в IDE
🪲 поиск багов через статический анализ
🧼 читаемость и понятность кода

Простой приём, который сильно повышает качество разработки.

Читать полностью…
Subscribe to a channel