Telegram Web
PHP 8.4 Release Candidate 1 уже здесь

Команда PHP объявила о выпуске первого релиз-кандидата PHP 8.4! Хотя до выхода общедоступной версии 8.4.0 еще около двух месяцев (ожидается 21 ноября), вы можете начать подготовку к PHP 8.4 уже сейчас. Ознакомьтесь с новыми функциями, путем обновления и ключевыми датами, чтобы быть уверенными в своей готовности.
👍4
💬Если удаляете много записей из таблицы, делайте это частями и с паузами, чтобы не завалить базу данных.
👍20😢7🤔5🌚5👾1
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👍2
Разблокировка производительности ORM: Важнейшая роль моделей чтения

Статья обсуждает проблемы производительности ORM (Object-Relational Mapper) при чтении больших объёмов данных из базы данных, подчеркивая важность хорошего понимания инструментов, которые мы используем.
👍5
Привет, друзья! 👋

Мы готовим статью о распространенных ошибках в карьере программиста и хотели бы услышать ваше мнение! Поделитесь своими мыслями и опытом, и самые полезные советы мы включим в нашу статью. Вот несколько вопросов для вас:

🤔 С какими ошибками в своей карьере программиста вы сталкивались? Как вы их преодолели?
📚 Какие советы вы бы дали начинающим разработчикам, чтобы избежать распространенных ловушек в программировании?
🖥️ Что, по вашему мнению, важно учитывать при планировании своей карьеры в IT, чтобы минимизировать сожаления в будущем?

Спасибо за ваше участие! 🚀
👍4
Что делает «@» в PHP?

В PHP символ «@» используется как оператор управления ошибками. Если «@» предшествует выражению или оператору, он подавляет любые сообщения об ошибках или предупреждения, которые обычно генерируются этим выражением. Его часто называют «оператором тишины».

Например, рассмотрим следующий код:

$result = @file_get_contents('nonexistentfile.txt');

В данном случае, если файл nonexistentfile.txt не существует, функция file_get_contents обычно вызвала бы предупреждение. Однако, предварив его символом «@», предупреждение подавляется. Переменная $result будет содержать false, и сообщение об ошибке не будет отображено.

Хотя оператор управления ошибками может быть удобен в определенных ситуациях, его использование следует осуществлять с осторожностью. Подавление ошибок может затруднить диагностику и устранение проблем в коде, так как вы не получите обратную связь о возможных проблемах. Общепринятым подходом является явная обработка ошибок с использованием блоков try-catch или других соответствующих механизмов обработки ошибок, а не полагаться на «@» для подавления ошибок.

#вопросы_с_собеседований
😁8👍6👾4
Изучение ключевых обновлений в PHP 8.4

В PHP 8.4 появится множество новых функций и улучшений, которые призваны улучшить работу разработчиков, оптимизировать производительность и упростить практику написания кода.
🥰1👏1
Как встроить систему приглашений в свое приложение с помощью Laravel и GraphQL

Здесь рассказано, как встроить систему приглашений в приложение с помощью Laravel и GraphQL. Эту задачу можно выполнить не только по привычным каналам вроде email, но и через SMS API. Разберется процесс интеграции от создания модели на Laravel и работы с GraphQL до отправки сообщений через API Exolve.
👏3👾2🌚1
Вопрос к сеньорам, в какой момент вы узнали, что достигли этого уровня? Как это произошло?⬇️⬇️⬇️
😁13🌚2
💡8 ключевых концепций в предметно-ориентированном проектировании (Domain-driven design, DDD): на заметку разработчику

👉 Источник
🔥9
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🍇 Подборка лучших статей «Библиотеки программиста» за сентябрь: сохраняй в заметки, чтобы не пропустить #самыйсок

😮 SQL: от Тетриса до ИИ — неожиданные возможности языка баз данных
⚛️🔄 Улучшенная обработка асинхронных операций в React 19
🔟🏩 ТОП-10 перспективных студий разработки: лучшие компании для вашего карьерного роста
🏗 3 основных шаблона событийно-ориентированной архитектуры
🐘🔧 Расширение pg_variables: мощная альтернатива временным таблицам в PostgreSQL
👍 25 полезных HTML тегов, элементов и атрибутов, которые должен знать каждый фронтендер
🚀 Продвинутый TypeScript: 15 приемов для создания надежного кода
🛠 Сага: эффективный шаблон микросервисной архитектуры
🏃 Самоучитель по Go для начинающих. Часть 16. Тестирование кода и его виды. Table-driven подход. Параллельные тесты
💡🎨 Источники вдохновения для UI/UX-дизайнеров и фронтендеров: 50 полезных ресурсов
🤩1
Опрос «Как вы учитесь с помощью телефона: поделитесь своим опытом!»

Дорогие подписчики, мы на миссии улучшений, и вы — наш ключ! 🔑


Мы хотим стать ещё круче, и для этого нужно узнать, как вы учитесь!

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

Займёт всего 5 минут — как раз успеете за чашкой кофе! А за ваш ценный вклад мы дарим 15% скидку на все курсы https://proglib.academy/ 🎁
👍1
💬Еще в Laravel 8 появился Prunable. С его помощью вы можете удалять старые модели по расписанию.

Вам больше не нужно писать пользовательские команды
👍17🥰1🌚1👾1
Что такое Views? Какие преимущества и недостатки?

Представления (Views) в базе данных — это виртуальные таблицы, которые содержат результат выполнения SQL-запроса. Представление не хранит данные самостоятельно, оно отображает данные, которые уже существуют в базовых таблицах, в структурированном виде. Представление может включать строки и столбцы из одной или нескольких таблиц.

Преимущества представлений (Views):

🟢Упрощение сложных запросов:

Представление может быть создано на основе сложных SQL-запросов. Это упрощает использование сложной логики, делая её более доступной и удобной для пользователей.
Вместо того чтобы писать сложный запрос каждый раз, можно просто обращаться к представлению.

🟢Безопасность данных:

Представления могут использоваться для ограничения доступа к определённым данным в таблицах. Например, можно создать представление, которое показывает только определённые столбцы таблицы или фильтрует строки по определённым условиям.
Это полезно для разделения прав доступа: пользователям можно дать доступ к представлению, не предоставляя доступ ко всей таблице.

🟢Абстракция данных:

Представления позволяют скрывать сложные детали структуры базы данных. Например, пользователю может быть предоставлен доступ к представлению, в то время как реальная структура данных может измениться (новые столбцы, объединения таблиц и т. д.), но представление останется неизменным.
Это облегчает поддержку кода, так как внешний интерфейс базы данных остаётся стабильным.

🟢Повторное использование запросов:

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

🟢Производительность:

В некоторых случаях, особенно если представление материализованное (materialized view), оно может улучшить производительность, так как результат запроса может быть сохранён и обновлён периодически, а не вычисляться при каждом обращении.

Недостатки представлений (Views):

🔸Ограниченные возможности обновления:

Некоторые представления не поддерживают обновление данных (INSERT, UPDATE, DELETE). Это особенно актуально для представлений, созданных на основе сложных запросов с агрегатами (GROUP BY, SUM и т. д.), объединений (JOIN) или подзапросов.
В этих случаях представление становится «только для чтения», что ограничивает его полезность в ряде ситуаций.

🔸Снижение производительности:

Если представление не материализовано, каждый раз при обращении к нему SQL-запрос будет выполняться заново. Это может быть ресурсоёмко, особенно для сложных запросов и больших объёмов данных.
В отличие от таблиц, которые хранят данные на физическом уровне, представления могут потребовать дополнительных вычислений при каждом использовании.

🔸Отсутствие индексов:

Представления не поддерживают индексы напрямую. Это означает, что поиск по представлению может быть медленнее по сравнению с таблицами, если в представлении содержатся сложные запросы.
Однако, если в базовых таблицах есть индексы, то они могут быть использованы при выполнении запросов через представление.

🔸Зависимость от структуры базовых таблиц:

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

🔸Сложность управления:

Если база данных содержит множество представлений, это может усложнить её структуру и сделать её менее прозрачной для администраторов и разработчиков.
Сложные каскадные представления (когда одно представление использует другое) могут привести к путанице и затруднить поддержку.

#вопросы_с_собеседований
👍71
Использование Redis для кэширования в Laravel

Здесь рассматривается настройка Redis в приложении Laravel для использования его в качестве механизма кэширования.

Подготовка:
Необходимо установить Redis на компьютер (например, через Docker или напрямую на разных операционных системах).
Проверить, что Redis работает и соединение установлено.

Установка Redis в Laravel:
Для подключения PHP к Redis можно использовать два варианта: phpredis (PHP-расширение) или predis (библиотека). В статье предпочитается phpredis.

Настройка Laravel:
В конфигурационном файле config/database.php нужно задать параметры подключения к Redis, указав клиента (phpredis) и данные для подключения (хост, порт, база данных и пр.).
Настраиваются переменные окружения в .env файле: выбирается клиент, хост, порт и базы данных для хранения и кэширования.

Использование Redis в Laravel:
Laravel предоставляет фасады для работы с кэшем через Illuminate\Support\Facades\Cache. Основные операции включают:

🔸Получение элемента: Cache::get('ключ')
🔸Проверка наличия ключа: Cache::has('ключ')
🔸Добавление или обновление элемента: Cache::put('ключ', 'значение', $минуты)
🔸Удаление элемента: Cache::forget('ключ')
🔸Очистка всего кэша: Cache::flush()
🔸Специальные методы, например Cache::remember, позволяют добавить элемент, если его нет, и вернуть значение.

Поиск по шаблонам:
Для поиска ключей, соответствующих определенному шаблону, используется метод scan (вместо медленного метода keys). scan работает с курсором, что позволяет постепенно обрабатывать ключи, избегая задержек в работе приложения.

Удаление ключей по шаблону:
Используя scan, можно не только находить ключи, но и удалять их с помощью метода del. Важно учесть, что для успешного удаления нужно удалить префикс из ключей.
👏3👍1👾1
Поддержка нескольких ботов в DefStudio Telegraph

Программный продукт Telegraph от DefStudio работает шустро и работать с ним одно удовольствие. Но не обошлось и без ложки дёгтя в этом меду — несмотря на возможность работы с несколькими ботами, обработчик для них всех будет лишь один. Благо есть лёгкий способ это исправить.
2025/07/13 22:06:28
Back to Top
HTML Embed Code: