Telegram Web
Laravel SoftDelete: Избегание проблемы уникальных ограничений

Если вы уже давно используете Laravel, особенно когда проекты связаны с целостностью данных, то, скорее всего, вы уже сталкивались с функцией SoftDelete. Это довольно полезная функция, поскольку вы можете «удалять» записи, не удаляя их из базы данных. Laravel просто добавляет временную метку deleted_at, так что запись помечается как удаленная, но остается в системе.
👍3🤔2👾1
#хочу_спросить

Задавайте любые вопросы о программировании и получайте ответы от пользователей. В комментариях под постом укажите #язык, #стек и/или #библиотеку, по которым задаете вопрос.
🔥3😁1
Самые полезные каналы для программистов в одной подборке!

Сохраняйте себе, чтобы не потерять 💾

🔥Для всех

Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
Азбука айтишника — здесь мы познаем азы из мира программирования

🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion

#️⃣C#

Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel

☁️DevOps

Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования

🐘PHP

Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты

🐍Python

Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты

Java

Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков

👾Data Science

Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту

🦫Go

Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go

🧠C++

Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++

💻Другие каналы

Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Библиотека разработчика игр | Gamedev, Unity, Unreal Engine
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности

📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈

Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT

Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *

* Организация Meta запрещена на территории РФ
🔥2
Tiny File Manager

Однофайловое PHP-приложение для хранения, загрузки, редактирования и управления файлами и папками в режиме онлайн через веб-браузер. Приложение работает на PHP 5.5+, позволяет создавать несколько пользователей и каждый пользователь может иметь свою собственную директорию, встроенная поддержка управления текстовыми файлами с помощью cloud9 IDE и поддерживает подсветку синтаксиса для более чем 150+ языков и более 35+ тем.
Что такое межсайтовый скриптинг?

Межсайтовый скриптинг (XSS) — это вид атаки на веб-приложения, при котором злоумышленник внедряет вредоносный скрипт (обычно JavaScript) в веб-страницу или веб-приложение, которое затем выполняется в браузере других пользователей. Целью атаки является получение доступа к информации пользователя, управление сессией, или выполнение других вредоносных действий от имени пользователя, часто без его ведома.

Существуют два основных типа межсайтового скриптинга:

Хранимый (Stored) XSS: Злоумышленник вводит вредоносный скрипт непосредственно на сервере, обычно через поля ввода или комментарии на веб-сайте. Затем этот скрипт сохраняется на сервере и выполняется при просмотре страницы другими пользователями.

Рефлектированный (Reflected) XSS: Вредоносный скрипт передается на сервер через параметры URL, формы или другие входные данные. Затем сервер возвращает этот скрипт в браузер пользователя, где он выполняется. Например, злоумышленник может создать ссылку, содержащую вредоносный скрипт, и убедить пользователя перейти по этой ссылке.

Межсайтовый скриптинг может быть использован для кражи сессий, перенаправления на фишинговые сайты, введения пользователя в заблуждение, кражи конфиденциальных данных и многих других атак. Для защиты от XSS атак следует использовать соответствующие техники санитизации входных данных, контекстного экранирования и использования Content Security Policy (CSP).

#вопросы_с_собеседований
🥰5😢1
Нормализация фантазийного текста в обычный текст в Laravel

Статья посвящена проблеме обработки «фантазийного текста» (fancy text) — текста, вводимого пользователями в различных стилях и форматах, таких как символы Unicode, диакритические знаки, лигатуры и другие визуально нестандартные элементы, включая математические символы алфавита. Эти вариации текста могут вызвать проблемы с консистентностью данных, поисковой функцией и общей производительностью системы. Примером такой проблемы является то, что PHP не может корректно кодировать деформированные символы UTF-8 в JSON, что может привести к повреждению данных или сбоям.

Решение проблемы заключается в использовании функции нормализации текста в PHP, которая преобразует такие «фантазийные» символы в обычный текст. В статье предложен пример кода, использующий класс Normalizer из расширения PHP Internationalization (intl). Функция проверяет, нормализован ли текст в одном из нескольких возможных форматов (NFC, NFD, NFKC, NFKD и т.д.), и, если нет, нормализует его до соответствующего формата. Таким образом, можно обеспечить корректную обработку текста, сравнение и хранение данных.
😁102
✔️Можно использовать метод rawValue(), чтобы получить значение из SQL-выражения.
👍8
🔤 Код без боли: шрифты, которые спасут твои глаза

Если ты всё ещё не нашел идеальный шрифт для работы, эта статья может спасти твоё зрение.

Рассказываем:
▪️как настроить шрифт в Visual Studio Code;
▪️что такое лигатуры шрифтов;
▪️какие шрифты для программирования популярны.

👉 Читать обо всём здесь
👍3
Если бы у вас была возможность лично выбрать одну новую фишку, которая появится в следующей версии языка, что бы это было?⬇️⬇️⬇️
📨 Как работают очереди и брокеры сообщений

Очередь сообщений — структура данных, которая хранит сообщения в порядке FIFO. Представьте, что вашему приложению нужно обрабатывать файлы, которые загружают пользователи. Очередь сообщений в этом случае может выступать как очередь задач, обрабатывающая задания асинхронно:

1️⃣ Пользователь загружает большой файл для обработки.
2️⃣ Веб-сервер принимает файл и создает задание.
3️⃣ Задание добавляется в очередь задач, а файл загружается в объектное хранилище.
4️⃣ Позже рабочий процесс забирает задания из очереди одно за другим и обрабатывает их, получая файл из хранилища.

Это самый простой пример. Очереди сообщений можно использовать для:

✔️ Планирования и управления фоновыми задачами.
✔️ Распределения задач между несколькими рабочими процессами.
✔️ Управления сервисами подписки и уведомлений.
✔️ Буферизации данных.
✔️ Повторных попыток обработки платежей и многого другого.

Подробнее читайте в нашем гайде 👇

🔗 Читать статью
🔗 Зеркало
👏31👍1
#дайджест новостей по PHP за неделю:

🔎PHP 8.4.0 RC2 доступен для тестирования — Команда PHP рада сообщить о выпуске PHP 8.4.0, RC2. Это второй релиз-кандидат, продолжающий цикл выпуска PHP 8.4

🔎Выпущен CakePHP 5.1.1 — Улучшения: Исправлена регрессия в генерации мета-тегов. Исправлены ошибки отсутствия метода в приложениях, использующих только консоль. Добавлен интерфейс EventAwareApplicationInterface и многое другое!

🔎Laravel 11.26 выпущен — Команда Laravel выпустила версию 11.26, в которой появилась возможность изящной остановки пула процессов, использование Enums при определении Rate Limiting, команда Artisan для создания Job Middleware и многое другое.

🔎Неделя Symfony #928 (7-13 октября 2024 года) — На этой неделе разработка была сосредоточена на Symfony 7.2, так как продолжалось слияние твиков и функций в преддверии его релиза в конце ноября 2024 года.
👍2
Понимание разницы между pluck() и select() в Laravel 11

В Laravel для работы с данными широко используются методы pluck() и select(). Несмотря на внешнее сходство, они выполняют разные задачи.

Основные различия между pluck() и select()

✔️Назначение:

pluck() используется для извлечения одного атрибута или пары ключ-значение.
select() позволяет получить несколько атрибутов для каждого элемента коллекции.

✔️Возвращаемая структура:

pluck() возвращает плоский массив значений или ассоциативный массив при использовании второго ключа.
select() возвращает коллекцию массивов с выбранными ключами.

Когда использовать каждый метод?

pluck() подходит, если требуется извлечь значения одного ключа или работать с вложенными данными.
select() лучше использовать, когда нужно получить несколько полей из каждого элемента коллекции.
🔥6🥱6👾1
Расскажите о шаблонах GRASP.

Шаблоны GRASP (General Responsibility Assignment Software Patterns) — это набор принципов проектирования объектно-ориентированного кода, которые помогают определить, какие классы или объекты будут выполнять конкретные задачи и ответственности. Они помогают улучшить структуру кода, делая его более гибким, читаемым и поддерживаемым.

Ниже представлены основные шаблоны GRASP:

1. Expert (Эксперт) — данный шаблон назначает ответственность объекту, который обладает наиболее полной информацией для выполнения определенной задачи. Таким образом, эксперт в данном контексте является наиболее квалифицированным объектом для выполнения определенной операции.

2. Creator (Создатель) — данный шаблон определяет, что объект должен быть ответственным за создание других объектов. То есть, если объект А тесно связан с объектом В и может быть считаться его создателем инициализации, то объект А должен брать на себя ответственность за создание объекта В.

3. Controller (Контроллер) — данный шаблон назначает объекту ответственность контроля за интерфейсом пользователя и управления потоком данных. Контроллер обрабатывает пользовательский ввод и инициирует действия в системе.

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

5. High Cohesion (Высокая связность) — данный шаблон подразумевает, что каждый класс должен представлять собой логическую единицу функциональности. Класс должен иметь одну ответственность и хорошо определенный смысл.

6. Indirection (Индиректирование) — данный шаблон назначает объекту посредническую роль для связи между другими объектами. То есть, объект А не обращается напрямую к объекту В, а связь между ними возникает через объект-посредник.

7. Polymorphism (Полиморфизм) — данный шаблон направлен на использование полиморфизма в объектно-ориентированном программировании. Полиморфизм позволяет работать с разными типами объектов через один и тот же интерфейс, что делает систему более гибкой и расширяемой.

#вопросы_с_собеседований
👍92
Распространенные ошибки PHP: Решение часто встречающихся проблем

Некоторые ошибки просты и легко устранимы, но другие могут быть немного сложнее. Здесь рассказано про некоторые из наиболее распространенных ошибок и предложены решения, которые помогут вам быстро их устранить.
🥱7👍4👏1🌚1
💻В отношениях «многие-ко-многим» можно добавить операторы where в таблицу pivot, используя метод wherePivot.
🥱162👍2👾1
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

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

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👍3
2025/07/13 12:51:56
Back to Top
HTML Embed Code: