PHP Academy @phpshka Channel on Telegram

PHP Academy

@phpshka


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

PHP Academy (Russian)

Добро пожаловать в PHP Academy! Наш канал предназначен для всех, кто интересуется программированием на PHP. Здесь вы найдете полезные статьи, видеоуроки, советы и рекомендации по работе с этим языком программирования

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

Если у вас есть вопросы по работе с PHP, наш администратор @phpshka всегда готов помочь вам. Также вы можете обратиться к @tombange с любыми вопросами или предложениями по улучшению канала. Мы ценим обратную связь наших подписчиков и постоянно стремимся сделать PHP Academy еще более полезным и информативным для вас. Присоединяйтесь к нашему каналу и начните свой путь к владению PHP сегодня! 🚀

PHP Academy

06 Feb, 10:04


Простое решение для параллельного выполнения PHP-кода.

Этот пакет предназначен для параллельного выполнения кода и создания пула процессов для выполнения различных задач (например, queue workers).

PHP Academy

06 Feb, 09:04


Генерируем API-клиент без помощи ChatGPT!

📅 Когда: 13 февраля в 20:00 мск

Сегодня сложно кого-то удивить генерацией кода. А что, если в этом процессе не будут участвовать LLM? 

🔍 На открытом вебинаре, мы::
— Применим генератор кода к спецификации API мини-приложения на Symfony
— Интегрируем сгенерированный код в другое Symfony-приложение.
— Рассмотрим решения часто встречающихся проблем.

🎯 В результате вы научитесь:
- Генерировать API-клиент на базе спецификации Open API  \n
- Использовать его в своих приложениях

🎓 Урок пройдет в преддверии старта курса «Symfony Framework».  Все участники получат скидку на большое обучение!

Регистрируйтесь прямо сейчас: 👉 ссылка

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

PHP Academy

03 Feb, 17:14


💡Совет по Laravel

Используйте "wasRecentlyCreated", чтобы проверить, была ли модель создана или найдена в базе данных.

PHP Academy

27 Jan, 09:00


💡 Совет по Laravel

Знаете ли вы... Во время итерации в цикле foreach внутри цикла будет доступна переменная $loop.

Эта переменная предоставляет доступ к некоторым полезным битам информации.

PHP Academy

27 Jan, 08:00


Symfony и Kafka — союз, о котором мечтают разработчики!

👉 Узнайте, как интеграция Symfony Messenger с Kafka делает обработку асинхронных задач надёжной и масштабируемой. Мы разберём примеры, лучшие практики и подводные камни.

Хотите уверенно работать с этой мощной связкой и прокачать свои проекты? 28 января в 20:00 мск вас ждёт открытый урок, где мы расскажем, как настроить и использовать Kafka как транспорт.

Спикер Михаил Каморин — Dev Tech Lead в Skyeng, участник и организатор конференций по PHP, член ПК Podlodka PHP Crew.

👉 Регистрируйтесь на вебинар сейчас и получите скидку на обучение на курсе «Symfony Framework»: https://otus.pw/9t7D/?erid=2W5zFGNTvSc 

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

PHP Academy

18 Jan, 13:01


Знаете ли вы, что Laravel поставляется с методом «preventStrayRequests()», позволяющим избежать реальных запросов во время тестирования? Это удобно не только для сторонних API, но и для локальных API. В то время как ваши тесты могут пройти локально, потому что все окружение работает, они могут провалиться в CI-конвейере. Это происходит потому, что в конвейере CI обычно активен только тот сервис, который вы тестируете, поэтому выполнение фактических запросов к недоступным API приведет к неудаче вашего набора.

PHP Academy

10 Jan, 10:02


Какова цель функции «array_map» в PHP и как её использовать?

Функция array_map() в PHP используется для применения заданной функции к каждому элементу массива. Она создает новый массив, содержащий результаты применения функции к каждому элементу исходного массива. Функция обратного вызова применяется к каждому элементу последовательно, и ключи сохраняются.

В этом примере функция square() применяется к каждому элементу массива $numbers с использованием array_map(), что приводит к созданию нового массива $squaredNumbers, где каждый элемент является квадратом соответствующего элемента исходного массива.

#вопросы_с_собеседований

PHP Academy

27 Dec, 12:54


🖥 Курс: MySQL в phpMyAdmin!

🕞 Продолжительность: 1:43:34

🔗 Ссылка: *клик*

#курс #sql

@phpshka

PHP Academy

18 Dec, 14:28


🖥 Полный курс по PHP! (139 видео)

🔗 Ссылка: *клик*

#курс #php

@phpshka

PHP Academy

14 Dec, 11:00


Laravel под капотом — расширение стандартных возможностей фреймворка

Проблема

FakerPHP поддерживает модификаторы valid() и unique(), но их нельзя использовать одновременно (например, fake()->unique()->valid()). Появилась необходимость добавить такую функциональность, не нарушая работы Laravel и не создавая сложностей при обновлении фреймворка.

Изучение механизма
Функция fake() в Laravel возвращает объект \Faker\Generator, который создаётся через фабрику и привязывается к контейнеру как синглтон. Это усложняет задачу: нельзя просто заменить объект через наследование, так как это потребует повторной реализации логики фабрики.

Решение
Автор предлагает использовать шаблон декоратора, который позволяет добавлять новые возможности к существующему объекту, не изменяя его напрямую.

🔸Создание класса-декоратора
Был создан класс FakerGenerator, принимающий базовый объект \Faker\Generator и добавляющий метод uniqueAndValid(). Этот класс также использует трейт Laravel ForwardsCalls, чтобы проксировать вызовы отсутствующих методов к оригинальному объекту.

🔸Интеграция в Laravel
Класс FakerGenerator был зарегистрирован в контейнере через метод extend() в провайдере AppServiceProvider. Это позволяет Laravel использовать новый декоратор вместо стандартного генератора при вызове fake()

Результат
Теперь вызовы fake()->uniqueAndValid()->randomElement() работают корректно, а все остальные методы генератора по-прежнему доступны благодаря механизму проксирования.

PHP Academy

14 Dec, 09:48


⚡️Легкий способ получать свежие обновления и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь:

МАШИННОЕ ОБУЧЕНИЕ: t.me/ai_machinelearning_big_data
C++ t.me/cpluspluc
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Хакинг: t.me/linuxkalii
Devops: t.me/DevOPSitsec
АНАЛИЗ Данных: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_ci
Java: t.me/javatg
Базы данных: t.me/sqlhub
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Docker: t.me/DevopsDocker
Golang: t.me/golang_interview
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/machinelearning_interview
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
Разработка игр: https://t.me/gamedev
Haskell: t.me/haskell_tg

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

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

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

PHP Academy

10 Dec, 11:50


🖥 Крутой официальный мануал по PHP научился новому трюку

Вы можете запускать код прямо в браузере!

@phpshka

PHP Academy

10 Dec, 09:47


Хочешь переходить с PHP на Go? Посмотри как выглядит собес на Мидла

12 декабря в 19:00 (мск) Сергей Парамошкин, Team Lead в Yandex Cloud, проведет открытое собеседование на Middle-позицию:

Задаст реальные вопросы и задачи разработчику.
Даст подробную обратную связь: объяснит, зачем задавал тот или иной вопрос, как лучше на него ответить или решить задачу.

Эфир будет полезен, если ты:
– Планируешь переходить с PHP на Go.
– Думаешь о переходе с PHP в другие стеки.
– Уже знаешь Go, но боишься начать проходить собеседования.

Это бесплатно?
Бесплатно

👾 Регистрируйся на эфир в боте Эйч Навыков и получи грейд-карту навыков по Go, необходимых при найме в бигтех-компаниях.

PHP Academy

05 Dec, 12:12


🖥 Совет по Laravel 💡

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

@phpshka

PHP Academy

30 Nov, 18:01


🖥 Совет по Laravel

Легко обновляйте столбцы JSON с помощью синтаксиса стрелок Laravel!

Используйте -> для указания конкретных ключей в ваших JSON-данных.


Работает с MariaDB 10.3+, MySQL 5.7+ и PostgreSQL 9.5+ 💡

#laravel

@phpshka

PHP Academy

30 Nov, 16:03


⚡️Легкий способ получать свежие обновления и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь:

МАШИННОЕ ОБУЧЕНИЕ: t.me/ai_machinelearning_big_data
C++ t.me/cpluspluc
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Хакинг: t.me/linuxkalii
Devops: t.me/DevOPSitsec
АНАЛИЗ Данных: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_ci
Java: t.me/javatg
Базы данных: t.me/sqlhub
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Docker: t.me/DevopsDocker
Golang: t.me/golang_interview
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/machinelearning_interview
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
Разработка игр: https://t.me/gamedev

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

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

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

PHP Academy

21 Nov, 10:06


🎊🎊🎊 Релиз языка программирования PHP 8.4

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

Ключевые изменения в PHP 8.4:

Предложена новая реализация JIT-компилятора, построенная на базе IR Framework. Ключевое отличие в том, что старый JIT напрямую генерировал машинные инструкции на основе байткода и с использованием разных бэкендов для архитектур x86_64 и AArch64, а новый JIT использует единый для всех архитектур бэкенд и генерирует промежуточное представление (IR), которое затем дополнительно оптимизируется и преобразуется в машинные инструкции.

Добавлена поддержка прикрепления обработчиков свойств (property hook), позволяющих добавить дополнительную логику, выполняемую при изменении или доступе к свойствам объекта, реализуемую без перехвата операций чтения и записи при помощи общих функций __get и __set, и без создания дополнительных методов-обвязок. Применение обработчиков свойств даёт возможность существенно сократить объём кода и упростить переопределение поведения работы со свойствами, благодаря привязке собственного обработчика к каждому свойству.

Добавлены методы DateTime::getMicrosecond(), DateTimeImmutable::setMicrosecond($microsecond) для получения и установки времени с микросекундной точностью, а также метод DateTime::createFromTimestamp().
В PDO (PHP Data Objects), абстрактный интерфейс для работы с базами данных, добавлена возможность создания парсеров SQL и субклассов, специфичных для определённых драйверов СУБД. Добавлены новые субклассы Pdo\Dblib, Pdo\Firebird, Pdo\MySql, Pdo\Odbc и Pdo\Sqlite.
Добавлены новые функции mb_trim(), mb_ltrim(), mb_rtrim(), mb_ucfirst(), mb_lcfirst(), bcceil(), bcdivmod(), bcfloor() и bcround(), pcntl_getcpu(), pcntl_getcpuaffinity(), pcntl_getqos_class(), pcntl_setns(), pcntl_waitid(), http_get_last_response_headers(), http_clear_last_response_headers(), fpow()
Операции exit и die теперь можно вызывать в форме полноценных функций, которые можно передавать в качестве аргумента в другие функции. Ранее возможности функций exit() и die() были сильно ограничены, так как они представляли собой обвязки над ключевыми словами exit и die.
Добавлены изменения, усложняющие эксплуатацию уязвимостей, вызванных выходом за границы буфера, а также улучшающих рандомизацию имён файлов, создаваемых через функцию tempnam().
Объявлено устаревшим поведение, при котором для параметров функций с присвоенным по умолчанию значением null автоматически разрешалось присвоение значений null. Для того, чтобы подобные параметры могли принимать значения null теперь требуется явное указание префикса "?". Например, вместо "function save(Book $book = null) {}" следует указывать "function save(?Book $book = null) {}".
Объявлены устаревшими константы E_STRICT, MYSQLI_REFRESH_*, функции mysqli_ping(), mysqli_kill(), mysqli_refresh(), методы mysqli::ping(), mysqli::kill(), mysqli::refresh(), возможность использования "_" в качестве имени класса, некоторые свойства DOMDocument и DOMEntity. Запрещено переопределение констант класса GMP, для которого теперь выставлено ключевое слово "final".

Все обновления

@phpshka

PHP Academy

20 Nov, 10:00


🤫 SSH PHP !

Легкий и понятный инструментдля создания приложений PHP SSH.

📌 Github

@phpshka

PHP Academy

20 Nov, 08:01


Хочешь переходить с PHP на Go? Посмотри как выглядит собес на Мидла

Эйч Навыки — менторская программа по Go-разработке, которая помогает поменять свой стек с PHP на Go, повысить грейд или найти новую работу.

21 ноября в 19:00 (мск) Аким Саввин, Team-lead в ВСК (ex-CTO в европейском стартапе ALT), проведет открытое собеседование на Middle-позицию:

Задаст реальные вопросы и задачи разработчику.
Даст подробную обратную связь: объяснит, зачем задавал тот или иной вопрос, как лучше на него ответить или решить задачу.

Эфир будет полезен, если ты:
– Планируешь переходить с PHP на Go.
– Думаешь о переходе с PHP в другие стеки.
– Уже знаешь Go, но боишься начать проходить собеседования.

Это бесплатно?
Бесплатно

👾 Регистрируйся на эфир в боте Эйч Навыков и получи грейд-карту навыков по Go, необходимых при найме в бигтех-компаниях.

PHP Academy

16 Nov, 10:36


✔️ composer/pcre

Библиотека-обертка PCRE, предлагающая безопасные замены preg_*.

@phpshka

PHP Academy

16 Nov, 09:34


⚡️Легкий способ получать свежие обновления и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь:

МАШИННОЕ ОБУЧЕНИЕ: t.me/ai_machinelearning_big_data
C++ t.me/cpluspluc
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Хакинг: t.me/linuxkalii
Devops: t.me/DevOPSitsec
Data Science: t.me/datascienceiot
Javascript: t.me/javascriptv
C#: t.me/csharp_ci
Java: t.me/javatg
Базы данных: t.me/sqlhub
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Docker: t.me/DevopsDocker
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/machinelearning_interview
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
Разработка игр: https://t.me/gamedev

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

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

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

PHP Academy

11 Nov, 16:01


⭐️ Вопрос с собеседования: Что такое Path Traversal?

Path Traversal в PHP — это уязвимость безопасности, при которой злоумышленник может попытаться получить доступ к файлам или директориям за пределами предназначенной области. Это может произойти, если приложение неправильно обрабатывает пользовательский ввод в пути файлов.

К примеру, если веб-приложение позволяет пользователю вводить путь к файлу или директории и не достаточно проверяет и фильтрует этот ввод, злоумышленник может использовать специально сформированные строки для «перехода» за пределы заданной директории и, таким образом, получить доступ к конфиденциальным файлам на сервере.

Для предотвращения атак Path Traversal важно правильно обрабатывать и валидировать пользовательский ввод, особенно при работе с файловой системой. Рекомендуется использовать абсолютные пути и проверять, что запрошенные ресурсы находятся в пределах ожидаемой области файловой структуры. Также полезно ограничивать права доступа к файлам и директориям на сервере.

PHP Academy

11 Nov, 15:02


Узнайте, как настроить надёжную отправку и получение сообщений в Symfony!

📅 12 ноября, 20:00
🔗 Записаться на урок: ссылка

Будет интересно всем php-разработчикам.

На открытом уроке «Надёжная отправка и получение сообщений через RabbitMQ в Symfony» разберём:
Сценарии потери сообщений, отправляемых через внешний брокер
Как поступать в ситуации, когда обработку сообщения нужно повторить?
Реализация Transactional Outbox для гарантированной отправки сообщений

После открытого урока можно записаться на курс «Symfony Framework» по специальной цене и даже в рассрочку!

Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: 👉 ссылка

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

PHP Academy

11 Nov, 10:01


🖥 Как создать мок для известной библиотеки spatie/laravel-newsletter

Это нужно для того чтобы не вызывать реального API, а лишь имитировать успешную подписку и добавление тегов в Mailchimp

@phpshka

PHP Academy

11 Nov, 08:01


Приходите на курс “PHP Performance”

Хороший программист не только умеет пилить классные фичи, но и знает, как работает его код в продакшене, а также может разобраться, почему его сервис тормозит. Для этого слово «телеметрия» должно стать не просто словом, а инструментом для поиска и устранения проблем.

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

🌐 В программе курса:

▪️
Архитектура бекенд-серверов на PHP и её особенности: php-fpm, RoadRunner, использование ресурсов, параметры конфигурации
▪️OpenTelemetry: применение на примере SigNoz
▪️Суб-real-time телеметрия поверх UDP c PINBA и промстэком (Grafana/Prometheus).

🥸 Кто мы: R&D-центр https://devhands.ru, наш канал (https://t.me/rybakalexey). Автор курса — Михаил Курмаев, эксперт по сложным распределённым системам. Долгое время строил платформу в Badoo/Bumble, сейчас в Т-банке развивает дата-платформу.

🗓 Старт курса: 28 ноября, 4 недели обучения.
Изучить программу и записаться можно здесь.

Ждем вас!

Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2VtzqufgxJq

PHP Academy

07 Nov, 11:47


🖥 Введение в графовые БД в PHP

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

Я объясняю основные причины, по которым стоит начать использовать графовые базы данных, основываясь на своем опыте веб-разработки.

📌 источник

@phpshka

PHP Academy

06 Nov, 13:02


🖼 php-jpeg-injector — скрипт на Python, который встраивает PHP-код в JPEG-изображения. Этот код можно использовать в веб-приложениях, где JPEG-файлы обрабатываются через библиотеку GD.

🌟 Скрипт позволяет внедрить полезную нагрузку в неиспользуемые данные изображения, которые могут быть интерпретированы сервером как PHP-код при определенных условиях.

🖥 Github

@phpshka

PHP Academy

04 Nov, 12:50


Laravel разработчики, упростите загрузку файлов с этим инструментом! 💎

Используйте Storage::download(), чтобы принудительно запустить скачивание файла в браузере. Отлично подходит для защищенных файлов или генерации динамических загрузок.

Совет: Настройте имя файла и заголовки для большего контроля.

@phpshka

PHP Academy

04 Nov, 10:49


Хочешь переходить с PHP на Go? Посмотри как выглядит собес на Мидла

Эйч Навыки — менторская программа по Go-разработке, которая помогает поменять свой стек с PHP на Go, повысить грейд или найти новую работу.

7 ноября в 19:00 (мск) Даниил Динько, TeamLead команды Go-разработчиков в Oxygen Forensics (ex-Ozon), проведет открытое собеседование на Middle-позицию:

Задаст реальные вопросы и задачи разработчику.
Даст подробную обратную связь: объяснит, зачем задавал тот или иной вопрос, как лучше на него ответить или решить задачу.

Эфир будет полезен, если ты:
– Планируешь переходить с PHP на Go.
– Думаешь о переходе с PHP в другие стеки.
– Уже знаешь Go, но боишься начать проходить собеседования.

Это бесплатно?
Бесплатно

👾 Регистрируйся на эфир в боте Эйч Навыков и получи грейд-карту навыков по Go, необходимых при найме в бигтех-компаниях.

PHP Academy

27 Oct, 11:50


🖥 PHP TUI

Мощный фреймворк для создания консольных приложений на PHP с псевдографическим пользовательским интерфейсом.

https://github.com/php-tui/php-tui

@phpshka

PHP Academy

27 Oct, 09:49


⚡️Легкий способ получать свежие обновления и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь:

МАШИННОЕ ОБУЧЕНИЕ: t.me/ai_machinelearning_big_data
C++ t.me/cpluspluc
Python: t.me/pythonl
Хакинг: t.me/linuxkalii
Devops: t.me/DevOPSitsec
АНАЛИЗ Данных: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_ci
Java: t.me/javatg
Базы данных: t.me/sqlhub
Linux: t.me/linuxacademiya
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Docker: t.me/DevopsDocker
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/machinelearning_interview
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
Angular: https://t.me/+qIJAuSEb2MQyMDJi

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

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

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

PHP Academy

26 Oct, 13:14


Совет по Laravel 💡: Метод «diffInDaysFiltered»

Вам когда-нибудь требовалось подсчитать количество дней между двумя датами при фильтрации по условию? Поскольку Laravel использует Carbon под капотом, вы можете использовать «diffInDaysFiltered», чтобы сделать именно это 🚀.

#laravel #php

@phpshka

PHP Academy

14 Oct, 16:00


🧩 JSON Parser

PHP парсер с нулевыми зависимостями для чтения больших JSON из любого источника с эффективным использованием памяти.

composer require cerbero/json-parser

🔗 Github

@phpshka

PHP Academy

14 Oct, 08:40


💡 Быстрый совет PHP

Простой способ чтения JSON-файлов в Laravel.

@phpshka

PHP Academy

12 Oct, 11:01


🖥 Самые популярные пакеты, запущенные в 2024 году 🚀

https://laralibrary.com/top-packages-launched/2024

@phpshka

PHP Academy

12 Oct, 09:44


⚡️Легкий способ получать свежие обновления и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь:

МАШИННОЕ ОБУЧЕНИЕ: t.me/ai_machinelearning_big_data
C++ t.me/cpluspluc
Python: t.me/pythonl
Хакинг: t.me/linuxkalii
Devops: t.me/DevOPSitsec
АНАЛИЗ Данных: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_ci
Java: t.me/javatg
Базы данных: t.me/sqlhub
Linux: t.me/linuxacademiya
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Docker: t.me/DevopsDocker
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/machinelearning_interview
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc


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

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

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

PHP Academy

05 Oct, 20:56


Manticore + Laravel + Scout

Простая интеграция поискового движка Manticore Search с фреймворком Laravel при помощи Laravel Scout и неофициального драйвера manticore-scout-engine.

PHP Academy

04 Oct, 09:01


⚡️ CipherSweet

Полезная библиотека, которая разработанная компанией Paragon Initiative Enterprises для реализации шифрования на уровне полей с возможностью поиска.

https://github.com/paragonie/ciphersweet

PHP Academy

01 Oct, 09:01


🖥 Полный курс Laravel Swagger. REST API Laravel

00:00:00 Введение
00:04:25 Делаем заготовку
00:16:20 Установка Swagger
00:22:18 Общие аннотации и настройки Swagger
00:28:01 CRUD со Swagger
01:03:03 Установка JWT Auth
01:13:08 Авторизация и защищенные роуты в Swagger
01:20:20 Бонус. Нестандартные тело запроса и ответа

источник

@phpishka

PHP Academy

01 Oct, 06:51


Highload, системный дизайн, производительность и масштабирование

Приглашаем на курс для прокачки навыков архитектора и проектировщика, которые важны для профессионального роста программиста.

🌐 С курсом «Системный дизайн высоконагруженных проектов» вы:

▪️изучите ключевые фундаментальные паттерны и получите навыки проектирования проектов с миллионной аудиторией (балансировка, масштабирование апп/кешей/субд, высокая доступность и кластерные решения, шардинг, CAP/PACELS, консистентность, саги, транзакционные очереди и многое другое)
▪️поупражняетесь в проектировании и получите обратную связь на реальных задачах: магазин/маркетплейс, такси/доставка, обьявления, соцсети, дейтинг, игры, википедия, мессенжер, CDN, хранилище файлов, онлайн-кинотеатр, счетчики, удаленный мониторинг, интеграционные вебхуки, рассылки и тд.
▪️ научитесь планировать нагрузку и связывать
бизнес-показатели с нефункциональными требованиями к системе
▪️ попрактикуемся в проведении и прохождения секций системного дизайна на интервью

Всё в формате «живых» онлайн-сессий (лекции, брейнштормы, презентации домашних проектов).

🥸 Кто мы: школа Devhands, основатель школы и автор курса Алексей Рыбак, ex-СТО Badoo, с 20-летним опытом высоконагруженных проектов и и управления глобальными технологическими организациями, член программного комитета Highload.

🗓 Старт 22-го октября, изучаем программу, записываемся здесь

Erid:2VtzqxYvjFF
Реклама. ИП Рыбак А.А. ИНН 771407709607

PHP Academy

25 Sep, 16:24


Совет по Laravel💡

Хотите быстро вывести SQL-запросы, выполненные во время вашего запроса?

И не хотите устанавливать Debugbar, Telescope и т.п.?

Используйте DB::listen() с toRawSql()!

@phpshka

PHP Academy

25 Sep, 09:43


Вот 50-минутное руководство по атрибутам #PHP 📺

Узнайте, как создавать атрибуты с целью применения правил проверки к свойствам объекта передачи данных

Ознакомьтесь с этим видео здесь 👇 или сохраните в закладках на будущее

https://youtu.be/oSo4xbP6ZYo

@phpshka

PHP Academy

22 Sep, 14:00


Совет по Laravel 💡

Вам нужно использовать одни и те же правила проверки пароля для разных маршрутов пользователей (например, при регистрации и создании панели администратора)?

Обратите внимание на функцию Password::defaults().

Ознакомьтесь со всеми правилами в документации: https://github.com/illuminate/validation/blob/master/Rules/Password.php

PHP Academy

22 Sep, 12:27


⚡️Легкий способ получать свежие обновления и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь:

МАШИННОЕ ОБУЧЕНИЕ: t.me/ai_machinelearning_big_data
C++ t.me/cpluspluc
Python: t.me/pythonl
Хакинг: t.me/linuxkalii
Devops: t.me/DevOPSitsec
АНАЛИЗ Данных: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_ci
Java: t.me/javatg
Базы данных: t.me/sqlhub
Linux: t.me/linuxacademiya
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Docker: t.me/DevopsDocker
Golang: t.me/Golang_google
React: t.me/react_tg
Rust: t.me/books_englishhh
PHP: t.me/phpshka
Android: t.me/android_its
Frontend: t.me/front
Big Data: t.me/bigdatai
Собеседования МЛ: t.me/machinelearning_interview
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc


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

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

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

PHP Academy

13 Sep, 07:03


Привет, разработчики Laravel 👩‍💻

Начиная с Laravel v11.18.0, в методе Str::limit() появился новый параметр preserveWords.

Пример использования метода limit() — отображение предварительных версий текстового контента, таких как резюме или отрывки блог-постов.

Раньше при использовании метода limit он мог разрывать слова посередине.

Теперь мы можем передать параметр preserveWords как true, и Laravel умно применит ограничение так, чтобы последнее слово было полным.

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

#laravel #php

PHP Academy

12 Sep, 12:49


Сегодня отмечается День программиста.

Поздравь причастных коллег

PHP Academy

07 Sep, 09:27


Советы по моделям в Laravel

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

1. Избегайте проблемы N+1 запросов
N+1 запросы возникают, когда для каждого элемента в коллекции данных выполняется отдельный запрос к базе данных, что замедляет приложение. Чтобы избежать этого, используйте eager loading для подгрузки связанных данных заранее.

2. Предотвращение доступа к несуществующим атрибутам
Если вы случайно попытаетесь получить доступ к несуществующему атрибуту модели, Laravel может вернуть null, что может вызвать неожиданные ошибки. Включите функцию, которая будет выбрасывать исключение при попытке доступа к несуществующему полю.

3. Защита от молчаливого игнорирования атрибутов
При попытке обновить модель с использованием полей, которые не указаны в списке fillable, Laravel просто проигнорирует эти данные. Включите функцию, которая будет выбрасывать исключение в таких случаях, чтобы избежать ошибок.

4. Включение строгого режима
Если хотите активировать сразу все перечисленные выше проверки, используйте строгий режим моделей. Он включает предотвращение ленивой загрузки, доступ к несуществующим атрибутам и молчаливое игнорирование атрибутов.

5. Использование UUID вместо автонумерации
Для повышения безопасности можно использовать UUID (уникальные идентификаторы) в качестве первичных ключей или для публичных идентификаторов. Это затрудняет предсказание ID и может защитить приложение от атак.

6. Использование кастомных коллекций
Laravel позволяет создавать собственные коллекции моделей с дополнительными методами для удобства работы с ними.

PHP Academy

04 Sep, 10:03


CSV и PHP8.4+

Здесь обсуждаются изменения в PHP 8.4, касающиеся обработки CSV-файлов, и их влияние на разработчиков и библиотеку league/csv, которая является популярным инструментом для работы с CSV в PHP.

В новой версии PHP 8.4 будут введены новые функции, такие как асимметричная видимость и хуки для свойств, но также будут изменения в старых функциональностях, в частности, в обработке CSV.

Разработчикам рекомендуется обновить свой код, чтобы использовать пустую строку для параметра экранирования и избежать предупреждений о депрекации. В статье приводятся примеры кода с пояснениями, как это сделать.

PHP Academy

03 Sep, 16:03


💡/Совет по PHP/Laravel

Вместо того чтобы выполнять цикл foreach по массиву для поиска значения записи, вы можете использовать метод Laravel Collection contains().

@phpshka

PHP Academy

02 Sep, 06:48


Простой сравнительный график по алгоритмической сложности

PHP Academy

30 Aug, 16:03


Удаление дублирующихся символов в строках

Если вам нужно удалить дубликаты строк в Laravel и PHP-приложениях, в Laravel v11.20 добавлен новый метод deduplicate в String helpers, который позволяет быстро и легко удалять дубликаты символов.

use Illuminate\Support\{Str,Stringable};

$string = '/usr/local////path/to///desktop';

Str::deduplicate($string, '/');
// «/usr/local/path/to/desktop»

(new Stringable($string))->deduplicate('/')->toString();
// «/usr/local/path/to/desktop»


По умолчанию символом замены в методе deduplicate() является пробел, что также может быть использовано для помощника squish(), представленного в Laravel v9.7.0:

Str::deduplicate(' John Smith Jr. '); // « John Smith Jr. »
Str::squish(' John Smith Jr. '); // «John Smith Jr.»


Обратите внимание на лишние пробелы ' ' в начале и в конце при использовании deduplicate(), это сделано специально. Deduplicate используется для замены последовательных экземпляров данного символа на один символ в данной строке. Squish также удаляет другие пробельные символы, такие как новые строки и табуляции:

// Каждый пример возвращает `laravel php framework`:
Str::squish(' laravel php framework '));
Str::squish(«laravel\t\tphp\n\nframework»);
Str::squish('
laravel
php
framework
');

PHP Academy

26 Aug, 11:03


📣 После изменения атрибутов записи Eloquent вы можете получить оригинальные атрибуты, вызвав метод getOriginal()