🤖Подключение чата DeepSeek к Алисе
Подробный гайд по интеграции GPT в колонку Алисы с использованием DeepSeek. Внутри — пошаговая настройка PHP-хостинга, секретов и навыков в Яндекс.Диалогах. В результате получаете умного помощника, способного отвечать на вопросы с помощью возможностей GPT.
👉 Читать гайд
Подробный гайд по интеграции GPT в колонку Алисы с использованием DeepSeek. Внутри — пошаговая настройка PHP-хостинга, секретов и навыков в Яндекс.Диалогах. В результате получаете умного помощника, способного отвечать на вопросы с помощью возможностей GPT.
👉 Читать гайд
📚 ТОП-10 свежих и актуальных книг по PHP для новичков и профессионалов
Когда-то PHP был препроцессором гипертекста, а сейчас стал популярным скриптовым языком общего назначения. Предлагаем вниманию читателей нашу версию десяти лучших актуальных книг для изучения этого языка программирования.
👉Читать далее
Когда-то PHP был препроцессором гипертекста, а сейчас стал популярным скриптовым языком общего назначения. Предлагаем вниманию читателей нашу версию десяти лучших актуальных книг для изучения этого языка программирования.
👉Читать далее
Что выведет код?
Anonymous Quiz
11%
Возникнет ошибка выполнения сценария
3%
null
38%
79
20%
0
28%
53
🛠️ Batch vs Stream Processing: ключевые различия
Batch Processing — обработка данных партиями с последующим выводом финального результата.
Stream Processing — обработка данных в режиме реального времени по мере их поступления.
Подробнее см. на изображении. ⚡️
#инфографика
Batch Processing — обработка данных партиями с последующим выводом финального результата.
Stream Processing — обработка данных в режиме реального времени по мере их поступления.
Подробнее см. на изображении. ⚡️
#инфографика
Подборка новостей по PHP за неделю:
🔎 Представлен CakePHP 5.1: упорядочены зависимости композитора, lib-ICU уже является неявной зависимостью через intl, проведены незначительные оптимизации за счет удаления избыточных присваиваний, проверок
🔎 Поддержка файлов .env теперь встроена в PhpStorm, что устраняет необходимость хардкодинга этих значений в коде приложения.
🔎 В Laravel 11.38 добавлено правило валидации Fluent Email. Команда Laravel выпустила версию 11.38, в которой появилось правило валидации Fluent Email, возможность получения запроса формы или значения Fluent в виде массива, конвейерный метод
🔎Вышли PHP 8.4.3 и PHP 8.3.16! — Это баг-фикс релизы.
🔎Неделя Symfony #942 (13-19 января 2025 года)
#дайджест
🔎 Представлен CakePHP 5.1: упорядочены зависимости композитора, lib-ICU уже является неявной зависимостью через intl, проведены незначительные оптимизации за счет удаления избыточных присваиваний, проверок
empty()
и isset()
.🔎 Поддержка файлов .env теперь встроена в PhpStorm, что устраняет необходимость хардкодинга этих значений в коде приложения.
🔎 В Laravel 11.38 добавлено правило валидации Fluent Email. Команда Laravel выпустила версию 11.38, в которой появилось правило валидации Fluent Email, возможность получения запроса формы или значения Fluent в виде массива, конвейерный метод
finally()
и многое другое.🔎Вышли PHP 8.4.3 и PHP 8.3.16! — Это баг-фикс релизы.
🔎Неделя Symfony #942 (13-19 января 2025 года)
#дайджест
💻Как загрузить больше данных с помощью ajax пагинации при прокрутке в laravel 11
В этой статье показано шаг за шагом, как загрузить больше данных с помощью ajax-пагинации при прокрутке в приложении laravel 11
👉Читать гайд
#туториал
В этой статье показано шаг за шагом, как загрузить больше данных с помощью ajax-пагинации при прокрутке в приложении laravel 11
👉Читать гайд
#туториал
DevScriptSchool.Com
How To Load More Data Using Ajax Pagination On Scroll In Laravel 11 Example | DevScriptSchool.com
In this post, I will show you step by step How to Load More data using ajax pagination on scroll in laravel 11 application.
⬆️Загружаемые трейты
Знаете ли вы, что Laravel автоматически загружает трейты, если они реализуют метод
#совет
Знаете ли вы, что Laravel автоматически загружает трейты, если они реализуют метод
boot[TraitName]
? Это позволяет вам легко определить общую логику для событий модели 🚀#совет
🗂️Библиотека: разделение базового файла PHPStan
Пакет предназначен для разделения базового файла PHPStan на несколько файлов, каждый из которых соответствует определенному идентификатору ошибки. Это позволяет более эффективно управлять и анализировать ошибки в вашем проекте.
Основные возможности:
🔸Разделение базового файла: Пакет разбивает общий файл
🔸Поддержка форматов: Поддерживаются как форматы
🔗 GitHub
#инструменты
Пакет предназначен для разделения базового файла PHPStan на несколько файлов, каждый из которых соответствует определенному идентификатору ошибки. Это позволяет более эффективно управлять и анализировать ошибки в вашем проекте.
Основные возможности:
🔸Разделение базового файла: Пакет разбивает общий файл
phpstan-baseline.neon
на отдельные файлы в директории baselines/
, где каждый файл соответствует конкретному идентификатору ошибки.🔸Поддержка форматов: Поддерживаются как форматы
neon
, так и php
для базовых файлов.🔗 GitHub
#инструменты
SOAP vs REST. В чем разница?
1. Принцип взаимодействия:
SOAP (Simple Object Access Protocol): Использует протокол XML для обмена сообщениями. Обычно отправляет запросы через HTTP, SMTP или другие протоколы.
REST (Representational State Transfer): Основан на простых HTTP методах (GET, POST, PUT, DELETE) и работает с ресурсами (например, URL). Возвращает данные в форматах JSON, XML или других текстовых форматах.
2. Простота и гибкость:
SOAP: Более сложный и тяжеловесный стандарт, предоставляющий много возможностей, но требует больше ресурсов и времени для разработки.
REST: Простой и гибкий, позволяет использовать различные форматы данных и не накладывает строгих правил на структуру сообщений.
3. Формат данных:
SOAP: Обычно использует XML для обмена данными, что может привести к большому объему сообщений из-за тегов и атрибутов XML.
REST: Часто использует JSON для передачи данных, что более компактно и легче читать для человека.
4. Состояние (Statelessness):
SOAP: Может поддерживать состояние сессии между запросами, что означает, что сервер должен помнить состояние клиента.
REST: Считается безсостоятельным (stateless), каждый запрос от клиента содержит всю необходимую информацию, и сервер не хранит состояние между запросами.
5. Безопасность:
SOAP: Предоставляет стандартизированные механизмы безопасности, такие как WS-Security, что делает его более подходящим для более критичных по безопасности приложений.
REST: Основывается на протоколе HTTPS для обеспечения безопасности передачи данных, но может потребовать дополнительных мер безопасности, таких как токены авторизации.
6. Кэширование:
SOAP: Поддерживает кэширование, но требует сложной настройки на стороне клиента и сервера.
REST: Имеет встроенную поддержку кэширования через HTTP методы, что упрощает процесс.
7. Использование веб-стандартов:
SOAP: Использует стандарты WSDL (Web Services Description Language) и UDDI (Universal Description, Discovery, and Integration) для описания веб-сервисов и их местоположения.
REST: Не имеет формальных стандартов описания интерфейсов, но использует стандарты HTTP и URI для доступа к ресурсам.
Эти различия имеют важное значение при выборе между SOAP и REST в зависимости от требований проекта. SOAP часто используется в корпоративных приложениях, требующих высокой надежности и безопасности, в то время как REST чаще используется в открытых API и веб-приложениях, где важна гибкость и простота использования.
#вопросы_с_собеседований
1. Принцип взаимодействия:
SOAP (Simple Object Access Protocol): Использует протокол XML для обмена сообщениями. Обычно отправляет запросы через HTTP, SMTP или другие протоколы.
REST (Representational State Transfer): Основан на простых HTTP методах (GET, POST, PUT, DELETE) и работает с ресурсами (например, URL). Возвращает данные в форматах JSON, XML или других текстовых форматах.
2. Простота и гибкость:
SOAP: Более сложный и тяжеловесный стандарт, предоставляющий много возможностей, но требует больше ресурсов и времени для разработки.
REST: Простой и гибкий, позволяет использовать различные форматы данных и не накладывает строгих правил на структуру сообщений.
3. Формат данных:
SOAP: Обычно использует XML для обмена данными, что может привести к большому объему сообщений из-за тегов и атрибутов XML.
REST: Часто использует JSON для передачи данных, что более компактно и легче читать для человека.
4. Состояние (Statelessness):
SOAP: Может поддерживать состояние сессии между запросами, что означает, что сервер должен помнить состояние клиента.
REST: Считается безсостоятельным (stateless), каждый запрос от клиента содержит всю необходимую информацию, и сервер не хранит состояние между запросами.
5. Безопасность:
SOAP: Предоставляет стандартизированные механизмы безопасности, такие как WS-Security, что делает его более подходящим для более критичных по безопасности приложений.
REST: Основывается на протоколе HTTPS для обеспечения безопасности передачи данных, но может потребовать дополнительных мер безопасности, таких как токены авторизации.
6. Кэширование:
SOAP: Поддерживает кэширование, но требует сложной настройки на стороне клиента и сервера.
REST: Имеет встроенную поддержку кэширования через HTTP методы, что упрощает процесс.
7. Использование веб-стандартов:
SOAP: Использует стандарты WSDL (Web Services Description Language) и UDDI (Universal Description, Discovery, and Integration) для описания веб-сервисов и их местоположения.
REST: Не имеет формальных стандартов описания интерфейсов, но использует стандарты HTTP и URI для доступа к ресурсам.
Эти различия имеют важное значение при выборе между SOAP и REST в зависимости от требований проекта. SOAP часто используется в корпоративных приложениях, требующих высокой надежности и безопасности, в то время как REST чаще используется в открытых API и веб-приложениях, где важна гибкость и простота использования.
#вопросы_с_собеседований
💊Советы по оптимизации памяти в PHP
Оптимизация использования памяти в PHP очень важна для создания эффективных и масштабируемых приложений.
В статье содержатся несколько ключевых советов по оптимизации использования памяти в PHP.
🔗Medium
Оптимизация использования памяти в PHP очень важна для создания эффективных и масштабируемых приложений.
В статье содержатся несколько ключевых советов по оптимизации использования памяти в PHP.
🔗Medium
🔗Реализация паттерна Chain of Responsibility на примере котиков в PHP
Если вы когда‑нибудь пытались настроить бизнес‑логику в своём проекте так, чтобы она не выглядела как свалка
Сегодня вы узнаете один из самых приятных паттернов — Chain of Responsibility, или «Цепочка обязанностей».
👉Хабр
Если вы когда‑нибудь пытались настроить бизнес‑логику в своём проекте так, чтобы она не выглядела как свалка
if-else
и работала хорошо, то этот материал для вас.Сегодня вы узнаете один из самых приятных паттернов — Chain of Responsibility, или «Цепочка обязанностей».
👉Хабр
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
💻Seeder vs Factory: Наполнение тестовых данных в Laravel
В Laravel для работы с данными в процессе разработки и тестирования используются два удобных инструмента — сидеры и фабрики. Каждый из них помогает заполнять базу данных, создавая подходящую среду для работы и проверки приложений. Разберём, как и когда применять каждый из них, а также почему они отлично дополняют друг друга.
Сидеры: Предопределённые данные для приложения
Сидеры используются для заполнения базы данных фиксированными или полуфиксированными данными, которые являются основой приложения. Это может быть информация о ролях, правах, странах или других справочниках. Например, в интернет-магазине с помощью сидеров можно:
🔸создать категории товаров, такие как «Электроника», «Одежда» или «Книги»;
🔸настроить роли пользователей, например «Администратор», «Продавец» и «Покупатель».
Применение сидеров обеспечивает согласованность данных и упрощает развертывание приложения в разных средах — локальной, тестовой или боевой.
Фабрики: Генерация динамических данных для тестирования
Фабрики идеально подходят для создания большого объёма случайных данных, которые можно использовать при тестировании и разработке. Например, в блоге фабрики помогут:
🔹создать 500 пользователей с уникальными именами и адресами электронной почты;
🔹сгенерировать 1000 записей с рандомным содержимым.
Фабрики упрощают моделирование реальных сценариев, ускоряя тестирование и позволяя быстро обновлять тестовые данные.
Сочетание сидеров и фабрик
Эти инструменты хорошо работают вместе. Сидеры задают основополагающие данные, такие как категории или роли, а фабрики добавляют реалистичные тестовые данные. Например, в CRM можно использовать:
✅сидеры для создания ролей, категорий и аккаунтов администратора;
✅фабрики для генерации профилей клиентов и историй взаимодействий.
👉Статья с практическими примерами
В Laravel для работы с данными в процессе разработки и тестирования используются два удобных инструмента — сидеры и фабрики. Каждый из них помогает заполнять базу данных, создавая подходящую среду для работы и проверки приложений. Разберём, как и когда применять каждый из них, а также почему они отлично дополняют друг друга.
Сидеры: Предопределённые данные для приложения
Сидеры используются для заполнения базы данных фиксированными или полуфиксированными данными, которые являются основой приложения. Это может быть информация о ролях, правах, странах или других справочниках. Например, в интернет-магазине с помощью сидеров можно:
🔸создать категории товаров, такие как «Электроника», «Одежда» или «Книги»;
🔸настроить роли пользователей, например «Администратор», «Продавец» и «Покупатель».
Применение сидеров обеспечивает согласованность данных и упрощает развертывание приложения в разных средах — локальной, тестовой или боевой.
Фабрики: Генерация динамических данных для тестирования
Фабрики идеально подходят для создания большого объёма случайных данных, которые можно использовать при тестировании и разработке. Например, в блоге фабрики помогут:
🔹создать 500 пользователей с уникальными именами и адресами электронной почты;
🔹сгенерировать 1000 записей с рандомным содержимым.
Фабрики упрощают моделирование реальных сценариев, ускоряя тестирование и позволяя быстро обновлять тестовые данные.
Сочетание сидеров и фабрик
Эти инструменты хорошо работают вместе. Сидеры задают основополагающие данные, такие как категории или роли, а фабрики добавляют реалистичные тестовые данные. Например, в CRM можно использовать:
✅сидеры для создания ролей, категорий и аккаунтов администратора;
✅фабрики для генерации профилей клиентов и историй взаимодействий.
👉Статья с практическими примерами
👨💻 Что делаете во время кодинга?
👍 — слушаю музыку
❤️ — смотрю видео
👏 — работаю в полной тишине
🤩 — другое (напишу в комментариях)
👍 — слушаю музыку
❤️ — смотрю видео
👏 — работаю в полной тишине
🤩 — другое (напишу в комментариях)
🛠️regexpbuilderphp — регулярные выражения, понятные человеку
Библиотека упрощает создание и делает их более читаемыми. Она подойдет для разработчиков, которые часто используют регулярки, но сложно ориентируются в их традиционном синтаксисе.
🔗Github
#инструменты
Библиотека упрощает создание и делает их более читаемыми. Она подойдет для разработчиков, которые часто используют регулярки, но сложно ориентируются в их традиционном синтаксисе.
🔗Github
#инструменты
Forwarded from Библиотека собеса по PHP | вопросы с собеседований
Что такое транзакция?
Транзакция — это последовательность операций чтения и записи, объединенных в единое логическое действие. Транзакция должна быть атомарной, согласованной, изолированной и долговечной (ACID-свойства).
Атомарность означает, что транзакция либо выполняется полностью, либо откатывается целиком. Если хотя бы одна операция внутри транзакции не может быть выполнена, то все изменения откатываются.
Согласованность подразумевает, что транзакция должна переводить базу данных из одного согласованного состояния в другое. Все ограничения и правила, заданные для данных, должны быть соблюдены.
Изолированность гарантирует, что транзакция ведется в отдельной среде и не вмешивается в работу других транзакций, одновременно выполняющихся в системе. Результат выполнения транзакции должен быть таким же, как если бы она была выполнена последовательно.
Долговечность обеспечивает сохранение результатов выполненной транзакции даже в случае сбоев системы или отключения питания. Результаты транзакции должны быть сохранены в базе данных и доступны после восстановления системы.
Транзакции обычно применяются для группировки логически связанных операций, чтобы гарантировать целостность данных при работе с базой данных. В языке программирования PHP транзакции могут быть реализованы с использованием соответствующих функций и методов для работы с базами данных, таких как mysqli или PDO.
Транзакция — это последовательность операций чтения и записи, объединенных в единое логическое действие. Транзакция должна быть атомарной, согласованной, изолированной и долговечной (ACID-свойства).
Атомарность означает, что транзакция либо выполняется полностью, либо откатывается целиком. Если хотя бы одна операция внутри транзакции не может быть выполнена, то все изменения откатываются.
Согласованность подразумевает, что транзакция должна переводить базу данных из одного согласованного состояния в другое. Все ограничения и правила, заданные для данных, должны быть соблюдены.
Изолированность гарантирует, что транзакция ведется в отдельной среде и не вмешивается в работу других транзакций, одновременно выполняющихся в системе. Результат выполнения транзакции должен быть таким же, как если бы она была выполнена последовательно.
Долговечность обеспечивает сохранение результатов выполненной транзакции даже в случае сбоев системы или отключения питания. Результаты транзакции должны быть сохранены в базе данных и доступны после восстановления системы.
Транзакции обычно применяются для группировки логически связанных операций, чтобы гарантировать целостность данных при работе с базой данных. В языке программирования PHP транзакции могут быть реализованы с использованием соответствующих функций и методов для работы с базами данных, таких как mysqli или PDO.
↔️Преобразование значений Fluent в массивы в Laravel
Новый метод
🔗Ссылка на медиум
Новый метод
array()
в Laravel обеспечивает чистый способ преобразования значений без ручного приведения.🔗Ссылка на медиум