PHP Academy @phpshka Channel on Telegram

PHP Academy

@phpshka


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

PHP Academy (Russian)

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

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, 10:01


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

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

@phpshka

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

27 Oct, 11:50


🖥 PHP TUI

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

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

@phpshka

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

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

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