es
Feedback
PHP | Вопросы собесов

PHP | Вопросы собесов

Ir al canal en Telegram

Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @easyoffer_adv

Mostrar más
2 326
Suscriptores
Sin datos24 horas
-17 días
-930 días
Atraer Suscriptores
septiembre '26
septiembre '26
+8
en 0 canales
agosto '26
+22
en 0 canales
Get PRO
julio '26
+38
en 0 canales
Get PRO
junio '26
+24
en 1 canales
Get PRO
mayo '26
+23
en 0 canales
Get PRO
abril '26
+21
en 0 canales
Get PRO
marzo '26
+27
en 0 canales
Get PRO
febrero '26
+47
en 0 canales
Get PRO
enero '26
+42
en 0 canales
Get PRO
diciembre '25
+33
en 0 canales
Get PRO
noviembre '25
+70
en 0 canales
Get PRO
octubre '25
+44
en 0 canales
Get PRO
septiembre '25
+46
en 0 canales
Get PRO
agosto '25
+46
en 0 canales
Get PRO
julio '25
+52
en 0 canales
Get PRO
junio '25
+52
en 0 canales
Get PRO
mayo '25
+58
en 0 canales
Get PRO
abril '25
+82
en 0 canales
Get PRO
marzo '25
+132
en 3 canales
Get PRO
febrero '25
+107
en 2 canales
Get PRO
enero '25
+125
en 54 canales
Get PRO
diciembre '24
+56
en 1 canales
Get PRO
noviembre '24
+69
en 1 canales
Get PRO
octubre '24
+186
en 45 canales
Get PRO
septiembre '24
+247
en 249 canales
Get PRO
agosto '24
+103
en 0 canales
Get PRO
julio '24
+200
en 54 canales
Get PRO
junio '24
+707
en 244 canales
Get PRO
mayo '24
+698
en 189 canales
Get PRO
abril '24
+471
en 23 canales
Fecha
Crecimiento de Suscriptores
Menciones
Canales
15 septiembre0
14 septiembre+1
13 septiembre+1
12 septiembre0
11 septiembre0
10 septiembre0
09 septiembre+3
08 septiembre0
07 septiembre0
06 septiembre0
05 septiembre0
04 septiembre+1
03 septiembre0
02 septiembre+1
01 septiembre+1
\"); \n// Выведет: <script>alert('Hacked!')</script>\n\nСтавь 👍 и забирай 📚 Базу знаний","datePublished":"2026-09-10T09:05:31Z","dateModified":"2026-09-10T09:05:31Z","author":{"@type":"Organization","name":"PHP | Вопросы собесов","url":"https://telemetr.io/es/channels/1905887817-easy_php_ru","image":"https://img.tlmtr.io/c/24YUu5/5224322902764150052?ty=x"},"publisher":{"@type":"Organization","name":"PHP | Вопросы собесов","url":"https://telemetr.io/es/channels/1905887817-easy_php_ru","image":"https://img.tlmtr.io/c/24YUu5/5224322902764150052?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":261},{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":10},{"@type":"InteractionCounter","interactionType":"https://schema.org/ShareAction","userInteractionCount":2}]}},{"@type":"ListItem","position":19,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/es/channels/1905887817-easy_php_ru/posts/2373","url":"https://telemetr.io/es/channels/1905887817-easy_php_ru/posts/2373","mainEntityOfPage":"https://telemetr.io/es/channels/1905887817-easy_php_ru/posts/2373","headline":"🤔 Зачем нужны паттерны проектирования? Это повторяемые решения типичных задач. Они помогают разработчикам соз…","articleBody":"🤔 Зачем нужны паттерны проектирования?\n\nЭто повторяемые решения типичных задач. Они помогают разработчикам создавать программы, которые легко поддерживать, расширять и модифицировать. Паттерны проектирования упрощают процесс разработки, обеспечивая проверенные способы решения распространенных проблем, что экономит время и силы разработчиков.\n\n🚩Зачем они нужны\n\n🟠Повторяемость и стандартность\nПаттерны обеспечивают повторяемость решений для часто возникающих задач, что снижает вероятность ошибок и улучшает читабельность кода.\n🟠Улучшение коммуникации\nИспользование общепринятых паттернов облегчает коммуникацию между разработчиками. Когда все понимают, что подразумевается под, например, «одиночкой» (singleton), это упрощает обсуждение архитектуры системы.\n🟠Повышение качества кода\nПаттерны проектирования способствуют созданию более структурированного, гибкого и поддерживаемого кода.\n🟠Экономия времени и ресурсов\nПаттерны позволяют не изобретать велосипед, а использовать проверенные решения, что ускоряет процесс разработки.\n\n🚩Как они используются\n\nПаттерны проектирования делятся на несколько категорий, каждая из которых решает определенный тип задач:\n🟠Порождающие паттерны\nЭти паттерны касаются создания объектов. Примеры: Singleton, Factory, Builder.\n🟠Структурные паттерны\nЭти паттерны касаются построения структуры больших объектов. Примеры: Adapter, Composite, Decorator.\n🟠Поведенческие паттерны\nЭти паттерны касаются взаимодействия и распределения обязанностей между объектами. Примеры: Observer, Strategy, Command.\nclass Singleton {\n private static $instance;\n\n private function __construct() {\n // Закрытый конструктор предотвращает создание объекта через new\n }\n\n public static function getInstance() {\n if (self::$instance === null) {\n self::$instance = new self();\n }\n return self::$instance;\n }\n\n public function someBusinessLogic() {\n // Некоторая бизнес-логика\n }\n}\n\n// Использование Singleton\n$singleton = Singleton::getInstance();\n$singleton->someBusinessLogic();\n\nСтавь 👍 и забирай 📚 Базу знаний","datePublished":"2026-09-09T09:05:41Z","dateModified":"2026-09-09T09:05:41Z","author":{"@type":"Organization","name":"PHP | Вопросы собесов","url":"https://telemetr.io/es/channels/1905887817-easy_php_ru","image":"https://img.tlmtr.io/c/24YUu5/5224322902764150052?ty=x"},"publisher":{"@type":"Organization","name":"PHP | Вопросы собесов","url":"https://telemetr.io/es/channels/1905887817-easy_php_ru","image":"https://img.tlmtr.io/c/24YUu5/5224322902764150052?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":263},{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":1},{"@type":"InteractionCounter","interactionType":"https://schema.org/ShareAction","userInteractionCount":4}]}},{"@type":"ListItem","position":20,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/es/channels/1905887817-easy_php_ru/posts/2372","url":"https://telemetr.io/es/channels/1905887817-easy_php_ru/posts/2372","mainEntityOfPage":"https://telemetr.io/es/channels/1905887817-easy_php_ru/posts/2372","headline":"🤔 Что такое Entity? Это объект, представляющий конкретную сущность в системе или домене. Обычно он имеет уник…","articleBody":"🤔 Что такое Entity?\n\nЭто объект, представляющий конкретную сущность в системе или домене. Обычно он имеет уникальный идентификатор и может изменяться в течение своего жизненного цикла.\n\nСтавь 👍 если знал ответ, 🔥 если нет\nЗабирай 📚 Базу знаний","datePublished":"2026-09-08T16:11:26Z","dateModified":"2026-09-08T16:11:26Z","author":{"@type":"Organization","name":"PHP | Вопросы собесов","url":"https://telemetr.io/es/channels/1905887817-easy_php_ru","image":"https://img.tlmtr.io/c/24YUu5/5224322902764150052?ty=x"},"publisher":{"@type":"Organization","name":"PHP | Вопросы собесов","url":"https://telemetr.io/es/channels/1905887817-easy_php_ru","image":"https://img.tlmtr.io/c/24YUu5/5224322902764150052?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":309},{"@type":"InteractionCounter","interactionType":"https://schema.org/ShareAction","userInteractionCount":2}]}}]}
Publicaciones del Canal
Корпоративный мессенджер Element на вашем сервере 💻Устали от рисков блокировок софта и хаоса в рабочих чатах сотрудников? Ес
Корпоративный мессенджер Element на вашем сервере 💻Устали от рисков блокировок софта и хаоса в рабочих чатах сотрудников? Если ваша команда общается в Telegram или зарубежных SaaS-сервисах, вы не контролируете доступы. При увольнении сотрудника приходится вручную удалять его из десятков групп, а риск внешних ограничений платформы растет каждый день. ИТ-интегратор «IT Liga» развернет автономную платформу Element на вашей инфраструктуре. Порядок в ИТ-контуре бизнеса: ✅ Защита от блокировок — сервер принадлежит только вам. ✅ Удаление уволенного сотрудника из всех чатов за 1 клик через AD/SSO. ✅ Мосты с Telegram — общайтесь с клиентами прямо из защищенного Element. ✅ Встроенный ИИ без передачи данных на внешние сервера. Переведите команду на стабильный софт. Получите демо за 20 минут! Узнать больше #реклама 16+ element.itliga.ru О рекламодателе

2
🤔 Что известно про наследование? Это механизм объектно-ориентированного программирования, позволяющий создавать классы на основе других классов. Позволяет повторно использовать код, добавлять или переопределять функциональность. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
153
3
🤔 Расскажи про полиморфизм Полиморфизм — это одна из ключевых концепций ООП (объектно-ориентированного программирования), которая позволяет объектам разного типа использовать один и тот же интерфейс. Это значит, что один метод может работать с разными типами данных, но при этом давать корректный результат. 🚩Зачем нужен полиморфизм? 🟠Гибкость кода можно легко заменять одни классы другими, не меняя общий код. 🟠Упрощение поддержки код становится понятнее и легче для расширения. 🟠Сокращение дублирования один общий интерфейс может использоваться разными классами. 🚩Виды полиморфизма Полиморфизм через наследование (override, переопределение методов) Полиморфизм через интерфейсы (реализация одного интерфейса разными классами) 🚩Полиморфизм через наследование Допустим, у нас есть базовый класс Animal, у которого есть метод makeSound(). Разные животные будут издавать разные звуки, но все они будут использовать этот метод. class Animal { public function makeSound() { return "Some sound"; } } class Dog extends Animal { public function makeSound() { return "Woof!"; } } class Cat extends Animal { public function makeSound() { return "Meow!"; } } function printSound(Animal $animal) { echo $animal->makeSound() . PHP_EOL; } printSound(new Dog()); // Выведет "Woof!" printSound(new Cat()); // Выведет "Meow!" 🚩Полиморфизм через интерфейсы Иногда классы не связаны через наследование, но должны поддерживать общий метод. Для этого используется интерфейс: interface Shape { public function getArea(): float; } class Circle implements Shape { private $radius; public function __construct($radius) { $this->radius = $radius; } public function getArea(): float { return pi() * $this->radius * $this->radius; } } class Rectangle implements Shape { private $width, $height; public function __construct($width, $height) { $this->width = $width; $this->height = $height; } public function getArea(): float { return $this->width * $this->height; } } function printArea(Shape $shape) { echo "Площадь: " . $shape->getArea() . PHP_EOL; } printArea(new Circle(5)); // Выведет площадь круга printArea(new Rectangle(4, 6)); // Выведет площадь прямоугольника Ставь 👍 и забирай 📚 Базу знаний
140
4
Аренда VPS/VDS-сервера. Виртуальные выделенные серверы в дата-центрах уровня Tier III — 7 готовых конфигураций от 200 ₽/мес.
Аренда VPS/VDS-сервера. Виртуальные выделенные серверы в дата-центрах уровня Tier III — 7 готовых конфигураций от 200 ₽/мес. Преимущества аренды: - Выделенные ресурсы без переплаты; - KVM-виртуализация; - Быстрые NVMe SSD; - Бесплатная защита от DDoS; - Управление через панель, API и Terraform; - Техподдержка 24/7. Запустите сервер за несколько минут! Попробовать #реклама 16+ selectel.ru О рекламодателе
198
5
🤔 Чем HTTP первой версии отличается от второй? HTTP/1.1 требует для каждого запроса нового соединения, что создает дополнительную нагрузку. HTTP/2 поддерживает мультиплексирование, позволяя передавать несколько запросов и ответов одновременно по одному соединению, что улучшает производительность.? Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
206
6
🤔 Что такое extend? В PHP extends используется для наследования классов. Он позволяет одному классу (дочернему) наследовать свойства и методы другого класса (родительского). 🚩Пример наследования через `extends` Базовый пример (extends) class Animal { public function makeSound() { return "Какой-то звук"; } } class Dog extends Animal { public function makeSound() { return "Гав-гав!"; } } $dog = new Dog(); echo $dog->makeSound(); // ✅ "Гав-гав!" Использование parent:: для вызова родительского метода class Animal { public function makeSound() { return "Какой-то звук"; } } class Cat extends Animal { public function makeSound() { return parent::makeSound() . " Мяу-мяу!"; } } $cat = new Cat(); echo $cat->makeSound(); // ✅ "Какой-то звук Мяу-мяу!" Наследование свойств class User { protected string $role = "Гость"; public function getRole() { return $this->role; } } class Admin extends User { protected string $role = "Администратор"; } $admin = new Admin(); echo $admin->getRole(); // ✅ "Администратор" Ставь 👍 и забирай 📚 Базу знаний
201
7
Услуги дата-центра в Москве Размещение и аренда серверного оборудования в дата-центре. 👍 4 современных дата-центра в Москве.
Услуги дата-центра в Москве Размещение и аренда серверного оборудования в дата-центре. 👍 4 современных дата-центра в Москве. 👍 Лицензированный оператор связи. 👍 Индивидуальные конфигурации выделенных серверов под задачи клиента. 👍 Круглосуточная техническая поддержка в Телеграм, без ботов. Узнать цену #реклама 16+ itsoft.ru О рекламодателе
219
8
🤔 Что такое SOLID? SOLID — это набор из пяти принципов объектно-ориентированного проектирования, направленных на создание более устойчивого и поддерживаемого кода. Эти принципы включают: Single Responsibility (одна ответственность), Open/Closed (открытость для расширения, закрытость для изменений), Liskov Substitution (замещение Лисков), Interface Segregation (разделение интерфейсов) и Dependency Inversion (инверсия зависимостей). Применение SOLID помогает избежать чрезмерной сложности и делает код более гибким. Эти принципы часто используются для улучшения архитектуры приложений. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
221
9
🤔 Зачем придумали анонимные классы? Анонимные классы в PHP были введены в версии 7.0 и позволяют создавать одноразовые объекты без необходимости предварительного объявления класса. Они имеют несколько преимуществ и предназначены для решения ряда задач в программировании. Вот основные причины и случаи, для которых они были придуманы: 🚩Зачем придумали анонимные классы 🟠Упрощение кода Анонимные классы позволяют создать класс на месте, в том же файле, где он используется, без необходимости его предварительного определения. Это упрощает и сокращает код, особенно для одноразовых задач. $logger = new class { public function log($message) { echo $message; } }; $logger->log("Hello, World!"); // Выведет: Hello, World! 🟠Инкапсуляция и уменьшение загрязнения пространства имен Поскольку анонимные классы не имеют имен, они не добавляют новых имен в глобальное пространство имен, что помогает избежать конфликтов имен и делает код более чистым. 🟠Использование одноразовых объектов Анонимные классы удобны, когда нужно создать объект для одноразового использования, например, в тестах, или для передачи в функции или методы. function handleRequest($handler) { $handler->process(); } handleRequest(new class { public function process() { echo "Processing request"; } }); // Выведет: Processing request 🟠Более гибкая реализация интерфейсов и абстрактных классов: Анонимные классы могут реализовывать интерфейсы или наследовать от абстрактных классов, предоставляя быстрый способ создать конкретные реализации на месте. interface Logger { public function log($message); } $logger = new class implements Logger { public function log($message) { echo $message; } }; $logger->log("Logging message"); // Выведет: Logging message 🟠Улучшение тестирования В юнит-тестах анонимные классы позволяют быстро создавать мок-объекты (mock objects) для тестирования без необходимости создавать отдельные классы для каждой тестовой ситуации. class Service { private $logger; public function __construct($logger) { $this->logger = $logger; } public function execute() { $this->logger->log("Service executed"); } } $mockLogger = new class { public function log($message) { echo "Mock: " . $message; } }; $service = new Service($mockLogger); $service->execute(); // Выведет: Mock: Service executed Ставь 👍 и забирай 📚 Базу знаний
187
10
Розыгрыш Яндекс Станции уже в боте Любимые блогеры, розыгрыши, новости и анонсы в одном боте! Узнать больше #реклама 16+ refe
Розыгрыш Яндекс Станции уже в боте Любимые блогеры, розыгрыши, новости и анонсы в одном боте! Узнать больше #реклама 16+ refer.id О рекламодателе
175
11
🤔 Что такое Docker? Это платформа для разработки, доставки и запуска приложений в изолированных контейнерах. Она позволяет упаковывать приложения и все их зависимости в контейнеры, которые могут работать на любой системе, поддерживающей Docker, что делает приложения более переносимыми и независимыми от окружения. 🚩Основные концепции 🟠Контейнеры Контейнеры — это легковесные, автономные, исполняемые пакеты, которые включают в себя все необходимое для запуска приложения: код, библиотеки, зависимости и системные инструменты. Контейнеры изолированы друг от друга и от хоста, что обеспечивает консистентность работы приложения в различных средах. 🟠Образы (Images) Образ Docker — это неизменяемый шаблон, из которого создаются контейнеры. Образы могут базироваться на других образах и содержат все необходимое для запуска приложения. Например, образ может содержать операционную систему, веб-сервер и само приложение. 🟠Dockerfile Dockerfile — это текстовый файл с инструкциями по созданию Docker-образа. Он содержит последовательность команд, которые Docker выполняет для сборки образа. # Используем базовый образ FROM php:8.0-apache # Копируем локальные файлы в контейнер COPY src/ /var/www/html/ # Устанавливаем зависимости RUN docker-php-ext-install mysqli 🟠Docker Hub Docker Hub — это облачный сервис для хранения и обмена Docker-образами. Он позволяет публиковать свои образы и загружать образы, созданные другими пользователями. 🚩Плюсы ➕Портативность Контейнеры могут работать на любом сервере, где установлен Docker, что позволяет легко перемещать приложения между различными средами (разработка, тестирование, продакшн). ➕Изоляция Контейнеры изолируют приложения и их зависимости, предотвращая конфликты между различными версиями библиотек и инструментов, используемых на одном сервере. ➕Легковесность Контейнеры используют общие ресурсы ядра хостовой операционной системы, что делает их более легковесными по сравнению с виртуальными машинами. ➕Быстрое развертывание Контейнеры можно запускать и останавливать за считанные секунды, что ускоряет процессы разработки, тестирования и развертывания приложений. Ставь 👍 и забирай 📚 Базу знаний
197
12
Ищем менеджеров нейросетей, можно без опыта Опыт не нужен. Только телефон. Занятость — 3-6 часов в день. Нужно выполнять зада
Ищем менеджеров нейросетей, можно без опыта Опыт не нужен. Только телефон. Занятость — 3-6 часов в день. Нужно выполнять задачи с помощью нейросетей. Все это вы делаете из дома. Всему обучим на бесплатном курсе и после поможем со стартом. Что вас ждет за 3 дня: ✅ Уроки с практикой по 30 минут ✅ Домашние задания с проверкой и оплатой бонусами ✅ Выплата за каждую выполненную работу 🎓 Все, кто пройдет обучение, получат сертификат от школы с образовательной лицензией. Набор закрывается, как только группа заполнится. Чтобы занять место нажмите "Зарегистрироваться". Зарегистрироваться #реклама 16+ course.neurogansta.ru О рекламодателе
175
13
🤔 Где можно столкнуться с динамической типизацией? Динамическая типизация характерна для языков, таких как Python, JavaScript, PHP. Например, переменная может быть сначала числом, а затем строкой. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
225
14
Регистрируйтесь на Yandex Scale 2026 Главная конференция Yandex Cloud. Узнайте о сервисах, которые меняют ваш бизнес. 4 офлай+5
Регистрируйтесь на Yandex Scale 2026 Главная конференция Yandex Cloud. Узнайте о сервисах, которые меняют ваш бизнес. 4 офлайн-трека (AI, Infra + DevTools, Data, Security), онлайн-трек Deep Tech, воркшопы по ИИ и интерактивы. Подробнее о программе читайте в карточках🗒 📅24 сентября 🚗Москва + 💻онлайн Участие бесплатное! Зарегистрироваться #реклама 16+ scale.yandex.cloud О рекламодателе
202
15
🤔 Что такое Cookies в PHP? Cookies (Куки) – это небольшие файлы, которые браузер сохраняет на компьютере пользователя и отправляет серверу при каждом запросе. 🚩Как работают Cookies? Установка Cookie в PHP setcookie("username", "Alice", time() + 3600, "/"); Чтение Cookie в PHP echo $_COOKIE["username"]; // ✅ Alice Удаление Cookie setcookie("username", "", time() - 3600, "/"); 🚩Где используются Cookies? Авторизация (сохранение логина). Запоминание настроек (тема, язык). Корзина товаров (если нет сессий). Отслеживание пользователей (Google Analytics, реклама). 🚩Ограничения и безопасность Cookies Максимальный размер – 4KB (поэтому для больших данных лучше использовать SESSION). Можно изменить в браузере (поэтому не храните пароли в куках!). Уязвимость XSS → если сайт подвержен XSS-атакам, злоумышленник может украсть куки. Защита Cookies setcookie("secure_cookie", "value", time() + 3600, "/", "", true, true); Ставь 👍 и забирай 📚 Базу знаний
243
16
Хочешь карьеру в ИТ? Начни с программы «Мини-СЕО» ⚡Попади в команду топ-менеджера Т-Банка и работай над стратегическими проек
Хочешь карьеру в ИТ? Начни с программы «Мини-СЕО» ⚡Попади в команду топ-менеджера Т-Банка и работай над стратегическими проектами компании. В зависимости от трека ты сможешь: — разрабатывать эффективные методологии для оценки влияния продукта на экосистему с Владимиром Любимовым; — исследовать экосистемы и находить наиболее перспективные точки роста с Максимом Безруковым; — развивать сегмент автолюбителей и заниматься региональной экспансией Т-Банка с Жорой Сукасяном; — вести стратегический план развития 3P, развивать AI-продукты и искать, где AI может упростить работу команды, c Денисом Коротовым; — участвовать в создании B2B-маркетплейса c Владимиром Абазовым. Программа подойдет студентам и джуниор-специалистам, которые сильны в математике, аналитике и программировании. Успей подать заявку до 25 сентября! Зарегистрироваться #реклама 16+ t-miniceo.ru О рекламодателе
182
17
🤔 Как устроен Git? Это распределенная система контроля версий, работающая на основе графа коммитов и хранения изменений через хеши (SHA-1). 1. Объектная модель: - Commit – снимок состояния проекта. - Tree – каталог файлов в коммите. - Blob – сами файлы (содержимое). 2. Система ссылок (HEAD, branches, tags). 3. Механизм staging (индексация изменений) перед коммитом. 4. Быстрая работа за счет хранения только изменений (deltas) и поддержки локального репозитория. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
249
18
🤔 Где мы делаем фильтрацию данных? Фильтрацию данных в PHP можно делать в нескольких местах в зависимости от контекста. Основные области фильтрации: 🚩Фильтрация входных данных Когда мы получаем данные от пользователя ($_GET, $_POST, $_REQUEST), важно очищать их от нежелательных значений. $name = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING); $email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL); Фильтрация массива $_POST через filter_var_array() $filters = [ 'name' => FILTER_SANITIZE_STRING, 'email' => FILTER_VALIDATE_EMAIL, 'age' => FILTER_VALIDATE_INT ]; $filteredData = filter_var_array($_POST, $filters); 🚩Фильтрация перед сохранением в базу данных Перед вставкой в SQL важно удалять потенциально опасные символы, чтобы избежать SQL-инъекций. $db = new PDO("mysql:host=localhost;dbname=test", "root", "password"); $stmt = $db->prepare("INSERT INTO users (name, email) VALUES (:name, :email)"); $stmt->execute([ ':name' => htmlspecialchars($_POST['name']), ':email' => $_POST['email'] ]); 🚩Фильтрация данных внутри кода Если данные поступают из разных источников, мы можем использовать фильтрующие функции PHP: Очистка строки от HTML $cleanText = strip_tags("<h1>Hello</h1>"); // "Hello" Удаление пробелов $trimmed = trim(" example "); // "example" Приведение к числу $number = filter_var("42abc", FILTER_SANITIZE_NUMBER_INT); // 42 🚩Фильтрация перед выводом (защита от XSS) Перед выводом в браузер очищаем данные от HTML/JS-кода, чтобы злоумышленник не внедрил скрипты. echo htmlspecialchars("<script>alert('Hacked!')</script>"); // Выведет: &lt;script&gt;alert('Hacked!')&lt;/script&gt; Ставь 👍 и забирай 📚 Базу знаний
261
19
🤔 Зачем нужны паттерны проектирования? Это повторяемые решения типичных задач. Они помогают разработчикам создавать программы, которые легко поддерживать, расширять и модифицировать. Паттерны проектирования упрощают процесс разработки, обеспечивая проверенные способы решения распространенных проблем, что экономит время и силы разработчиков. 🚩Зачем они нужны 🟠Повторяемость и стандартность Паттерны обеспечивают повторяемость решений для часто возникающих задач, что снижает вероятность ошибок и улучшает читабельность кода. 🟠Улучшение коммуникации Использование общепринятых паттернов облегчает коммуникацию между разработчиками. Когда все понимают, что подразумевается под, например, «одиночкой» (singleton), это упрощает обсуждение архитектуры системы. 🟠Повышение качества кода Паттерны проектирования способствуют созданию более структурированного, гибкого и поддерживаемого кода. 🟠Экономия времени и ресурсов Паттерны позволяют не изобретать велосипед, а использовать проверенные решения, что ускоряет процесс разработки. 🚩Как они используются Паттерны проектирования делятся на несколько категорий, каждая из которых решает определенный тип задач: 🟠Порождающие паттерны Эти паттерны касаются создания объектов. Примеры: Singleton, Factory, Builder. 🟠Структурные паттерны Эти паттерны касаются построения структуры больших объектов. Примеры: Adapter, Composite, Decorator. 🟠Поведенческие паттерны Эти паттерны касаются взаимодействия и распределения обязанностей между объектами. Примеры: Observer, Strategy, Command. class Singleton { private static $instance; private function __construct() { // Закрытый конструктор предотвращает создание объекта через new } public static function getInstance() { if (self::$instance === null) { self::$instance = new self(); } return self::$instance; } public function someBusinessLogic() { // Некоторая бизнес-логика } } // Использование Singleton $singleton = Singleton::getInstance(); $singleton->someBusinessLogic(); Ставь 👍 и забирай 📚 Базу знаний
263
20
🤔 Что такое Entity? Это объект, представляющий конкретную сущность в системе или домене. Обычно он имеет уникальный идентификатор и может изменяться в течение своего жизненного цикла. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
309