Понимание сериализации в PHP
Сериализация (или serialization) - это процесс преобразования данных в формат, который можно сохранить или передать. В PHP сериализация выполняется с использованием специального формата, который представляет различные типы данных, такие как булевы значения, null, целые числа, числа с плавающей запятой, строки, массивы и объекты.
Булевы значения сериализуются так:
🔹 "b:0;" для false и "b:1;" для true.
🔹 Null представляется как "N;".
🔹 Целые числа сериализуются как "i:значение;",
🔹 числа с плавающей запятой как "d:значение;".
🔹 Сериализованные строки содержат информацию о длине строки и выглядят так: "s:[длина]:"[значение]"".
Массивы сериализуются с использованием "a:[количество элементов]:{...элементы}", где каждый элемент представлен в формате "ключ;значение;". Объекты сериализуются с использованием "O:[длина класса]:"[класс]":[количество свойств]:{...свойства}". Сериализация может также обрабатывать защищенные и приватные свойства объектов, добавляя специальные символы к их именам.
Этот процесс позволяет сохранять данные в формате, который можно легко передавать или хранить, и восстанавливать их обратно в их первоначальное состояние.
👉 Подробнее
➡️ @PHPgx | #cтатья #en
Сериализация (или serialization) - это процесс преобразования данных в формат, который можно сохранить или передать. В PHP сериализация выполняется с использованием специального формата, который представляет различные типы данных, такие как булевы значения, null, целые числа, числа с плавающей запятой, строки, массивы и объекты.
Булевы значения сериализуются так:
Массивы сериализуются с использованием "a:[количество элементов]:{...элементы}", где каждый элемент представлен в формате "ключ;значение;". Объекты сериализуются с использованием "O:[длина класса]:"[класс]":[количество свойств]:{...свойства}". Сериализация может также обрабатывать защищенные и приватные свойства объектов, добавляя специальные символы к их именам.
Этот процесс позволяет сохранять данные в формате, который можно легко передавать или хранить, и восстанавливать их обратно в их первоначальное состояние.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤1
Например, если переменная передана в функцию в качестве параметра, её можно использовать для инициализации цикла for без дополнительного объявления.
Это небольшая синтаксическая особенность, но довольно интересное поведение языка, о котором стоит знать.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🤔3
Создание приложения для управления файлами — отличный способ изучить важные концепции программирования.
В этом курсе вы создадите клон Google Drive с использованием Laravel, PHP и Vue.js.
Вы реализуете загрузку и скачивание файлов, создадите функцию поиска, интегрируете AWS и многое другое.
👉 Ссылка на курс
👉 @PHPgx | #курсы #en
В этом курсе вы создадите клон Google Drive с использованием Laravel, PHP и Vue.js.
Вы реализуете загрузку и скачивание файлов, создадите функцию поиска, интегрируете AWS и многое другое.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Проект предлагает минималистичный и быстрый доступ к данным, очистку кеша и мониторинг работы сервисов.
Подробнее: GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
This media is not supported in your browser
VIEW IN TELEGRAM
Обнаружил интерактивную игрушку — SQL Murder Mystery
Это квест, где нужно раскрыть убийство в городе SQL City с помощью SQL-запросов. Начинаешь с обрывков улик и шаг за шагом собираешь доказательства, чтобы вычислить преступника.
Если вы новичок в SQL, не беда — для вас подготовлен специальный пошаговый гид. А для опытных сыщиков сразу доступны данные для расследования.
Короче, если хотите совместить приятное с полезным и прокачать свои SQL-скиллы в увлекательной форме, рекомендую попробовать: https://mystery.knightlab.com/
👉 @PHPgx | #ресурсы
Это квест, где нужно раскрыть убийство в городе SQL City с помощью SQL-запросов. Начинаешь с обрывков улик и шаг за шагом собираешь доказательства, чтобы вычислить преступника.
Если вы новичок в SQL, не беда — для вас подготовлен специальный пошаговый гид. А для опытных сыщиков сразу доступны данные для расследования.
Короче, если хотите совместить приятное с полезным и прокачать свои SQL-скиллы в увлекательной форме, рекомендую попробовать: https://mystery.knightlab.com/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤2
Пакет для интеграции Grok AI в приложения Laravel
https://github.com/grok-php/laravel
👉 @PHPgx | #ресурсы
https://github.com/grok-php/laravel
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - grok-php/laravel: Seamlessly integrate Grok AI into Laravel applications with an elegant, developer-friendly package.…
Seamlessly integrate Grok AI into Laravel applications with an elegant, developer-friendly package. Leverage powerful AI models for chat, automation, and NLP, while maintaining Laravel's ex...
🤔6👍1
Когда-нибудь приходилось ограничивать частоту выполнения задач?
Будь то защита API от перегрузки или ограничение количества задач для пользователей бесплатного тарифа, Laravel позволяет легко задавать лимиты и использовать их прямо из коробки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2
Секреты стройности монолита: подходы по снятию нагрузки с БД
Статья описывает, как команда Яндекс Еды оптимизировала свой монолитный PHP-сервис, снизив нагрузку на MySQL
Основные проблемы включали высокую загрузку CPU и памяти, сложность управления изменениями в структуре базы данных и срабатывание механизма Flow Control в Galera Cluster, что приводило к задержкам и сбоям в обслуживании запросов.
Для решения этих проблем команда распределила ответственность за таблицы между командами, анализировала медленные запросы с помощью утилиты pt-query-digest и внедрила различные оптимизации, включая использование кэширования и денормализацию данных
В результате удалось значительно снизить нагрузку на базу данных и улучшить производительность системы
👉 Подробнее
➡️ @PHPgx | #cтатья
Статья описывает, как команда Яндекс Еды оптимизировала свой монолитный PHP-сервис, снизив нагрузку на MySQL
Основные проблемы включали высокую загрузку CPU и памяти, сложность управления изменениями в структуре базы данных и срабатывание механизма Flow Control в Galera Cluster, что приводило к задержкам и сбоям в обслуживании запросов.
Для решения этих проблем команда распределила ответственность за таблицы между командами, анализировала медленные запросы с помощью утилиты pt-query-digest и внедрила различные оптимизации, включая использование кэширования и денормализацию данных
В результате удалось значительно снизить нагрузку на базу данных и улучшить производительность системы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤3🔥1
True Async
На днях был опубликован RFC, предоставляющий возможность писать асинхронный код на PHP.
Согласно этому предложению, можно будет писать код следующего вида:
Это похоже на
На данный момент для написания асинхронного кода в PHP используют генераторы, Fiber (начиная с версии 8.1), а также решения вроде Swoole, AMPHP, ReactPHP.
RFC:
https://wiki.php.net/rfc/true_async
➡️ @PHPgx
На днях был опубликован RFC, предоставляющий возможность писать асинхронный код на PHP.
Согласно этому предложению, можно будет писать код следующего вида:
Async\run(function() {
$fiber = Async\async(function() {
sleep(1);
return "Fiber completed!";
});
// Выполнение приостанавливается, пока fiber не завершится
$result = Async\await($fiber);
echo $result . "\n";
echo "Done!\n";
});Это похоже на
async/await в JavaScript и работает через механизм Event Loop.На данный момент для написания асинхронного кода в PHP используют генераторы, Fiber (начиная с версии 8.1), а также решения вроде Swoole, AMPHP, ReactPHP.
RFC:
https://wiki.php.net/rfc/true_async
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30❤2🤯2
Вы можете сделать это, выполнив команду:
php artisan route:list --only-vendor
Это отлично подходит для аудита ваших маршрутов и выявления тех, о которых вы могли не знать, чтобы убедиться, что они защищены и безопасны
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤1🤯1
Крутеший ресурс, если хочешь выучить SQL на практике и с нуля
Это интерактивные уроки прямо в браузере, без регистрации и бесплатно. Всё подается шаг за шагом: от базовых запросов до более сложных тем, таких как JOIN и агрегации
Весь процесс строится на упражнениях, так что теорию сразу применяешь на практике
Ссылка: https://sqlbolt.com/
👉 @PHPgx | #ресурсы
Это интерактивные уроки прямо в браузере, без регистрации и бесплатно. Всё подается шаг за шагом: от базовых запросов до более сложных тем, таких как JOIN и агрегации
Весь процесс строится на упражнениях, так что теорию сразу применяешь на практике
Ссылка: https://sqlbolt.com/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Часто при демонстрации нашего проекта заинтересованным сторонам мы заполняем базу данных фиктивными данными с помощью библиотеки Faker для PHP.
Но иногда заинтересованным сторонам сложно воспринимать данные, так как по умолчанию библиотека Faker генерирует их в формате локали
Вот небольшой совет: мы можем изменить локаль для нашего Laravel-приложения с помощью переменной окружения
В моем случае я обычно устанавливаю
#laravel #php
👉 @PHPgx | #tips
Но иногда заинтересованным сторонам сложно воспринимать данные, так как по умолчанию библиотека Faker генерирует их в формате локали
en_US.Вот небольшой совет: мы можем изменить локаль для нашего Laravel-приложения с помощью переменной окружения
APP_FAKER_LOCALE.В моем случае я обычно устанавливаю
APP_FAKER_LOCALE в ru_RU, после чего Faker начинает генерировать данные, более приближенные к русскому формату.#laravel #php
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21❤3
Одна из самых подробных и полезных шпаргалок для Backend-разработчиков на русском языке.
Всё, что нужно, собрано в одном месте: как устроен интернет, как работают ПК, базы данных, API, тестирование и куча всего ещё
Весь материал преисполнен разными таблицами и картинками для лучшего усвоения, вся информация подаётся кратко и понятно, а если захотите изучить детальнее — везде есть ссылки на источники.
👉 @PHPgx | #ресурсы
Всё, что нужно, собрано в одном месте: как устроен интернет, как работают ПК, базы данных, API, тестирование и куча всего ещё
Весь материал преисполнен разными таблицами и картинками для лучшего усвоения, вся информация подаётся кратко и понятно, а если захотите изучить детальнее — везде есть ссылки на источники.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤5🔥2👀2