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

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

رفتن به کانال در Telegram

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

نمایش بیشتر
2 341
مشترکین
-124 ساعت
-47 روز
-2430 روز
آرشیو پست ها
🤔 Какой оператор в PHP проверяет, определена ли переменная?
Anonymous voting

Что делает final ? Спросят с вероятностью 13% Ключевое слово final используется для ограничения наследования и переопределения классов и методов. Оно выполняет две основные функции: 1️⃣Запрет наследования классов. 2️⃣Запрет переопределения методов в классах-наследниках. Запрет наследования Когда класс объявлен с использованием final, он не может быть унаследован. Это может быть полезно, когда вы хотите предотвратить дальнейшее расширение класса, чтобы сохранить его поведение неизменным и избежать непредвиденных изменений в наследниках.
<?php
final class BaseClass {
    public function sayHello() {
        echo "Hello from BaseClass\n";
    }
}

// Попытка наследовать финальный класс приведет к ошибке
class ChildClass extends BaseClass { // Ошибка: Class ChildClass cannot extend final class BaseClass
    public function sayHello() {
        echo "Hello from ChildClass\n";
    }
}
?>
Запрет переопределения Когда метод в классе объявлен с использованием final, этот метод не может быть переопределен в классах-наследниках. Это полезно, когда нужно гарантировать, что конкретный метод будет работать одинаково во всех производных классах.
<?php
class BaseClass {
    final public function sayHello() {
        echo "Hello from BaseClass\n";
    }

    public function greet() {
        echo "Greetings from BaseClass\n";
    }
}

class ChildClass extends BaseClass {
    // Попытка переопределить финальный метод приведет к ошибке
    public function sayHello() { // Ошибка: Cannot override final method BaseClass::sayHello()
        echo "Hello from ChildClass\n";
    }

    // Не финальный метод можно переопределить
    public function greet() {
        echo "Greetings from ChildClass\n";
    }
}

$child = new ChildClass();
$child->sayHello(); // Ошибка
$child->greet(); // Выведет: Greetings from ChildClass
?>
Зачем это нужно? 1️⃣Сохранение целостности поведения: Использование final позволяет гарантировать, что определенные методы или классы останутся неизменными, независимо от того, какие изменения будут внесены в классы-наследники. 2️⃣Защита важных функциональностей: Ключевые методы, которые не должны изменяться, могут быть защищены с помощью final, чтобы предотвратить потенциальные ошибки или неправильное использование в наследниках. 3️⃣Упрощение понимания кода: Использование final делает код более предсказуемым и понятным для других разработчиков, так как они могут быть уверены, что поведение final методов и классов не будет изменено в наследниках. Ключевое слово final используется для предотвращения наследования классов и переопределения методов, что помогает сохранить целостность поведения кода и защитить важные функциональности. 👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти к списку 385 вопросов на PHP разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых

🤔 Какой интерфейс определяет метод hasNext() в PHP?
Anonymous voting

Чем composer.json от composer.lock отличается ? Спросят с вероятностью 13% composer.json и composer.lock — это два важных файла, которые используются при управлении зависимостями в проектах PHP с помощью Composer. Несмотря на то, что оба файла играют ключевую роль в процессе установки и управления зависимостями, они имеют разные функции и содержат различную информацию. composer.json Это файл конфигурации, который содержит информацию о проекте и список зависимостей, необходимых для его работы. В этом файле указываются библиотеки и их версии, которые требуется установить для корректной работы проекта. Кроме того, composer.json может содержать метаинформацию о проекте, такую как название, описание, авторы, лицензия и другие параметры.
{
    "name": "myproject",
    "description": "A simple project.",
    "authors": [
        {
            "name": "John Doe",
            "email": "john.doe@example.com"
        }
    ],
    "require": {
        "monolog/monolog": "^2.0",
        "guzzlehttp/guzzle": "^7.0"
    }
}
В этом примере указаны две зависимости: monolog/monolog версии 2.0 и выше, но не выше 3.0, и guzzlehttp/guzzle версии 7.0 и выше, но не выше 8.0. composer.lock Это файл, который фиксирует точные версии всех установленных зависимостей, а также их транзитивных зависимостей. Когда вы запускаете команду composer install, Composer проверяет файл composer.lock и устанавливает зависимости в точности так, как они указаны в этом файле. Это гарантирует, что все разработчики проекта и среды развертывания будут использовать одну и ту же версию всех библиотек, что помогает избежать проблем с несовместимостью.
{
    "packages": [
        {
            "name": "monolog/monolog",
            "version": "2.3.5",
            "source": {
                "type": "git",
                "url": "https://github.com/Seldaek/monolog.git",
                "reference": "aabbccddeeff00112233445566778899aabbccdd"
            },
            ...
        },
        {
            "name": "guzzlehttp/guzzle",
            "version": "7.3.0",
            "source": {
                "type": "git",
                "url": "https://github.com/guzzle/guzzle.git",
                "reference": "112233445566778899aabbccddeeff0011223344"
            },
            ...
        }
    ],
    ...
}
Этот файл создается автоматически при выполнении команды composer install или composer update и не требует ручного редактирования. Основные отличия: 1️⃣Назначение: ✅composer.json: Определяет зависимости проекта и содержит метаинформацию о проекте. ✅composer.lock: Фиксирует точные версии установленных зависимостей для обеспечения консистентности между установками. 2️⃣Редактирование: ✅composer.json: Обычно редактируется вручную разработчиками для добавления или удаления зависимостей. ✅composer.lock: Генерируется и обновляется Composer автоматически. 3️⃣Использование команд: ✅composer.json: Используется командами composer install и composer update для определения зависимостей, которые нужно установить или обновить. ✅composer.lock: Используется командой composer install для установки точно тех версий зависимостей, которые зафиксированы в файле. Если объяснить совсем просто: composer.json говорит, какие библиотеки нужны проекту, а composer.lock фиксирует, какие конкретно версии этих библиотек были установлены, чтобы все пользовались одинаковыми версиями. 👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти к списку 385 вопросов на PHP разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых

🤔 Что делает оператор => в PHP?
Anonymous voting

Что такое внешний ключ ? Спросят с вероятностью 13% Внешний ключ (foreign key) — это концепция в реляционных базах данных, которая используется для установления связи между двумя таблицами. Обеспечивает ссылочную целостность данных, гарантируя, что значение в одном столбце (или группе столбцов) соответствует значению в столбце (или группе столбцов) другой таблицы. Основные характеристики 1️⃣Связь между таблицами: Устанавливает связь между столбцом (или столбцами) одной таблицы и столбцом (или столбцами) другой таблицы. 2️⃣Обеспечение ссылочной целостности: Гарантирует, что значения в столбце внешнего ключа соответствуют значениям в столбце первичного ключа связанной таблицы. 3️⃣Ограничения: Может накладывать ограничения на операции вставки, обновления и удаления данных, чтобы сохранить целостность связей между таблицами. Рассмотрим пример, в котором есть две таблицы: orders (заказы) и customers (клиенты). В таблице orders есть столбец customer_id, который ссылается на столбец id в таблице customers. Создание таблиц с внешним ключом
CREATE TABLE customers (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL
);

CREATE TABLE orders (
    id INT AUTO_INCREMENT PRIMARY KEY,
    order_date DATE NOT NULL,
    customer_id INT,
    FOREIGN KEY (customer_id) REFERENCES customers(id)
);
Зачем они нужны? 1️⃣Обеспечение целостности данных: Гарантируют, что каждая запись в таблице со ссылкой (например, orders) соответствует действительной записи в связанной таблице (например, customers). 2️⃣Предотвращение удаления данных: Могут предотвратить удаление записей, на которые ссылаются другие таблицы. Например, нельзя удалить клиента, если у него есть связанные заказы. 3️⃣Автоматическое обновление: Могут обеспечить автоматическое обновление значений в связанных таблицах при изменении значений первичных ключей. Ограничения и поведение 1️⃣ON DELETE: Определяет поведение при удалении записей в родительской таблице. ✅CASCADE: Автоматически удаляет записи в дочерней таблице, если соответствующая запись удалена в родительской таблице. ✅SET NULL: Устанавливает значение внешнего ключа в NULL, если соответствующая запись удалена в родительской таблице. ✅RESTRICT: Запрещает удаление записи в родительской таблице, если существуют связанные записи в дочерней таблице. ✅NO ACTION: То же самое, что и RESTRICT. 2️⃣ON UPDATE: Определяет поведение при обновлении значений первичных ключей в родительской таблице. ✅CASCADE: Автоматически обновляет значения внешнего ключа в дочерней таблице при изменении значений в родительской таблице. ✅SET NULL: Устанавливает значение внешнего ключа в NULL, если соответствующее значение изменено в родительской таблице. ✅RESTRICT: Запрещает обновление значений в родительской таблице, если существуют связанные записи в дочерней таблице. ✅NO ACTION: То же самое, что и RESTRICT. Пример
CREATE TABLE orders (
    id INT AUTO_INCREMENT PRIMARY KEY,
    order_date DATE NOT NULL,
    customer_id INT,
    FOREIGN KEY (customer_id) REFERENCES customers(id)
    ON DELETE CASCADE
    ON UPDATE CASCADE
);
Внешний ключ (foreign key) в реляционных базах данных используется для установления связи между двумя таблицами, обеспечивая ссылочную целостность данных. Он гарантирует, что значения в одной таблице соответствуют значениям в другой, и может накладывать ограничения на операции вставки, обновления и удаления данных для сохранения целостности связей. 👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти к списку 385 вопросов на PHP разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых

🤔 Какой уровень логирования в PHP является самым высоким по приоритету?
Anonymous voting

Что такое SSH-протокол ? Спросят с вероятностью 13% SSH (Secure Shell) — это сетевой протокол, который используется для безопасного доступа к удаленным компьютерам и управления ими. Он обеспечивает шифрование данных, аутентификацию и целостность передаваемой информации, что делает его предпочтительным средством для удаленного администрирования и передачи файлов. Основные характеристики и возможности: 1️⃣Безопасность: ✅SSH использует криптографические методы для шифрования данных, что защищает передаваемую информацию от перехвата и анализа. ✅Протокол поддерживает различные методы аутентификации, включая использование паролей и публичных/приватных ключей. 2️⃣Аутентификация: ✅Парольная аутентификация: Пользователь вводит свой логин и пароль для доступа к удаленной системе. ✅Аутентификация с помощью ключей: Вместо пароля используется пара ключей (публичный и приватный). Публичный ключ размещается на удаленном сервере, а приватный ключ остается на клиентской машине. 3️⃣Шифрование данных: ✅Шифрует все передаваемые данные, включая пароли, команды и файлы, что предотвращает их перехват и несанкционированный доступ. 4️⃣Целостность данных: ✅Обеспечивает контроль целостности передаваемых данных, используя алгоритмы хеширования, которые обнаруживают любые изменения данных в процессе передачи. 5️⃣Туннелирование: ✅Позволяет создавать зашифрованные туннели для передачи данных других протоколов (например, HTTP, FTP), обеспечивая их безопасность. Основные компоненты: 1️⃣SSH-клиент: ✅Установленное на локальном компьютере, которое используется для установления соединения с удаленным сервером. 2️⃣SSH-сервер: ✅Работающее на удаленной машине, которое принимает и обрабатывает соединения от SSH-клиентов. Пример: 1️⃣Установка соединения с удаленным сервером: ✅Для подключения к удаленному серверу используется команда ssh в терминале.
      ssh username@remote_host
   
Здесь username — это имя пользователя на удаленном сервере, а remote_host — это адрес удаленного сервера (например, IP-адрес или доменное имя). 2️⃣Копирование файлов через SSH: ✅Для копирования файлов с локального компьютера на удаленный сервер или наоборот используется команда scp.
      scp localfile.txt username@remote_host:/remote/directory/
   
✅Копирование файлов с удаленного сервера на локальный компьютер:
      scp username@remote_host:/remote/file.txt /local/directory/
   
3️⃣Использование ключей для аутентификации: ✅Генерация пары ключей (публичного и приватного):
      ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
   
✅Копирование публичного ключа на удаленный сервер:
      ssh-copy-id username@remote_host
   
Если объяснить совсем просто: SSH — это как секретный туннель, через который вы можете безопасно подключаться и управлять удалёнными компьютерами. 👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти к списку 385 вопросов на PHP разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых

🤔 Какой оператор используется для тернарной операции в PHP?
Anonymous voting

Что такое агрегат ? Спросят с вероятностью 13% Термин "агрегат" может иметь разные значения в зависимости от контекста, в котором он используется. В программировании и базах данных он чаще всего относится к двум основным областям: ООП (особенно в контексте DDD - Domain-Driven Design) и к операциям агрегации в базах данных. Агрегат в Domain-Driven Design (DDD) В контексте представляет собой группу связанных объектов, которые рассматриваются как единое целое для целей управления данными и согласованности. Агрегат имеет следующие характеристики: 1️⃣Составной объект: Агрегат состоит из нескольких объектов (Entity и Value Object), объединенных вокруг одного корневого объекта (Root Entity). 2️⃣Границы согласованности: Агрегат определяет границы, внутри которых поддерживается строгая согласованность данных. 3️⃣Корень агрегата (Aggregate Root): Единственная точка входа для работы с агрегатом. Внешний код должен взаимодействовать только с корневым объектом агрегата. Рассмотрим пример агрегата "Заказ" в системе электронной коммерции. В этом агрегате у нас есть сущности Order (Заказ), OrderItem (Элемент заказа) и Customer (Клиент).
<?php
class Order {
    private $orderId;
    private $customer;
    private $items = [];
    private $status;

    public function __construct($orderId, Customer $customer) {
        $this->orderId = $orderId;
        $this->customer = $customer;
        $this->status = 'NEW';
    }

    public function addItem(Product $product, $quantity) {
        $this->items[] = new OrderItem($product, $quantity);
    }

    public function getTotalAmount() {
        $total = 0;
        foreach ($this->items as $item) {
            $total += $item->getTotalPrice();
        }
        return $total;
    }

    public function completeOrder() {
        $this->status = 'COMPLETED';
    }
}

class OrderItem {
    private $product;
    private $quantity;

    public function __construct(Product $product, $quantity) {
        $this->product = $product;
        $this->quantity = $quantity;
    }

    public function getTotalPrice() {
        return $this->product->getPrice() * $this->quantity;
    }
}

class Customer {
    private $customerId;
    private $name;

    public function __construct($customerId, $name) {
        $this->customerId = $customerId;
        $this->name = $name;
    }
}

class Product {
    private $productId;
    private $price;

    public function __construct($productId, $price) {
        $this->productId = $productId;
        $this->price = $price;
    }

    public function getPrice() {
        return $this->price;
    }
}
?>
В этом примере класс Order является корнем агрегата. Внешний код будет взаимодействовать только с классом Order, а не с классами OrderItem или Customer напрямую. Агрегация в базах данных В контексте баз данных агрегация относится к операциям, которые собирают данные из нескольких строк и вычисляют сводные результаты. Примеры агрегационных функций включают SUM, AVG, COUNT, MIN, и MAX.
SELECT customer_id, COUNT(*) AS total_orders, SUM(amount) AS total_amount
FROM orders
GROUP BY customer_id;
В этом запросе выполняется агрегация данных из таблицы orders, где вычисляется общее количество заказов и общая сумма для каждого клиента. ✅Агрегат в DDD: Это группа связанных объектов, рассматриваемых как единое целое для целей управления данными и согласованности, с корневым объектом (Aggregate Root), через который осуществляется взаимодействие с агрегатом. ✅Агрегация в базах данных: Это операции, которые собирают данные из нескольких строк и вычисляют сводные результаты, такие как суммы, средние значения, минимальные и максимальные значения. 👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти к списку 385 вопросов на PHP разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых

🤔 Какое значение имеет константа PHP_EOL в PHP?
Anonymous voting

💸 Вакансии для IT'шников Выбери своё направление ⤵ 1. Frontend 2. Python 3. Java 4. Тестировщик QA 5. Data Science 6. DevOps 7. C# 8. С/C++ 9. Golang 10. PHP 11. Kotlin 12. Swift

Что известно про Docker ? Спросят с вероятностью 13% Docker — это платформа для автоматизации развертывания приложений в изолированных контейнерах, что обеспечивает их независимость от окружения и облегчает их переносимость. Контейнеры Docker содержат все необходимые компоненты для запуска приложений, такие как библиотеки, зависимости и системные инструменты. Основные команды: 1️⃣Создание образа:
      docker build -t myapp .
   
Эта команда создаст образ из Dockerfile в текущем каталоге и присвоит ему тег myapp. 2️⃣Запуск контейнера:
      docker run -d -p 80:80 myapp
   
Эта команда запустит контейнер из образа myapp, пробросив порт 80 хоста на порт 80 контейнера, и запустит его в фоновом режиме. 3️⃣Просмотр работающих контейнеров:
      docker ps
   
Команда выводит список всех запущенных контейнеров. 4️⃣Остановка контейнера:
      docker stop <container_id>
   
Команда останавливает контейнер по указанному идентификатору. 5️⃣Удаление контейнера:
      docker rm <container_id>
   
Команда удаляет указанный контейнер. Пример: 1️⃣Создание Dockerfile:
      FROM nginx:latest
   COPY . /usr/share/nginx/html
   
2️⃣Сборка образа:
      docker build -t mynginx .
   
3️⃣Запуск контейнера:
      docker run -d -p 8080:80 mynginx
   
Теперь ваше приложение доступно по адресу http://localhost:8080. Docker позволяет упаковать приложение со всеми необходимыми зависимостями в контейнер, который можно запустить на любом компьютере с установленным Docker. 👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти к списку 385 вопросов на PHP разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых

🤔 Какой метод объектно-ориентированного программирования в PHP позволяет одному классу наследовать методы и свойства другого класса?
Anonymous voting

Как сделать так, чтобы сессии не хранились в файле ? Спросят с вероятностью 13% По умолчанию сессии хранятся в файлах на сервере. Однако, для улучшения производительности, масштабируемости или безопасности, вы можете изменить способ хранения сессий, например, использовать базы данных, Redis, Memcached или другие хранилища. Давайте рассмотрим, как можно изменить хранение сессий с использованием различных методов. Хранение сессий в базе данных 1️⃣Создание таблицы для сессий:
CREATE TABLE sessions (
    id VARCHAR(255) NOT NULL PRIMARY KEY,
    data TEXT NOT NULL,
    timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
2️⃣Настройка пользовательских обработчиков сессий: Создайте класс для обработки сессий в базе данных.
<?php
class MySQLSessionHandler implements SessionHandlerInterface {
    private $pdo;

    public function __construct(PDO $pdo) {
        $this->pdo = $pdo;
    }

    public function open($savePath, $sessionName) {
        return true;
    }

    public function close() {
        return true;
    }

    public function read($id) {
        $stmt = $this->pdo->prepare("SELECT data FROM sessions WHERE id = :id");
        $stmt->bindParam(':id', $id, PDO::PARAM_STR);
        $stmt->execute();

        if ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
            return $row['data'];
        }

        return '';
    }

    public function write($id, $data) {
        $stmt = $this->pdo->prepare("REPLACE INTO sessions (id, data, timestamp) VALUES (:id, :data, NOW())");
        $stmt->bindParam(':id', $id, PDO::PARAM_STR);
        $stmt->bindParam(':data', $data, PDO::PARAM_STR);
        return $stmt->execute();
    }

    public function destroy($id) {
        $stmt = $this->pdo->prepare("DELETE FROM sessions WHERE id = :id");
        $stmt->bindParam(':id', $id, PDO::PARAM_STR);
        return $stmt->execute();
    }

    public function gc($maxlifetime) {
        $stmt = $this->pdo->prepare("DELETE FROM sessions WHERE timestamp < NOW() - INTERVAL :maxlifetime SECOND");
        $stmt->bindParam(':maxlifetime', $maxlifetime, PDO::PARAM_INT);
        return $stmt->execute();
    }
}

// Использование пользовательского обработчика сессий
$pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');
$handler = new MySQLSessionHandler($pdo);
session_set_save_handler($handler, true);
session_start();
?>
Хранение сессий в Redis 1️⃣Установка и настройка Redis: Убедитесь, что Redis установлен и запущен на вашем сервере. 2️⃣Установка PHP расширения для Redis:
pecl install redis
3️⃣Использование Redis для хранения сессий:
<?php
ini_set('session.save_handler', 'redis');
ini_set('session.save_path', 'tcp://127.0.0.1:6379');

session_start();

// Использование сессии
$_SESSION['username'] = 'example_user';
echo $_SESSION['username'];
?>
Хранение сессий в Memcached 1️⃣Установка и настройка Memcached: Убедитесь, что Memcached установлен и запущен на вашем сервере. 2️⃣Установка PHP расширения для Memcached:
pecl install memcached
3️⃣Использование Memcached для хранения сессий:
<?php
ini_set('session.save_handler', 'memcached');
ini_set('session.save_path', '127.0.0.1:11211');

session_start();

// Использование сессии
$_SESSION['username'] = 'example_user';
echo $_SESSION['username'];
?>
Вы можете настроить для хранения сессий в базе данных, Redis или Memcached вместо файлового хранилища. Это может улучшить производительность и масштабируемость вашего приложения. Настройка включает создание соответствующего хранилища, установку и настройку необходимых PHP расширений и конфигурацию обработчиков сессий. 👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти к списку 385 вопросов на PHP разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых

🤔 Какой суперглобальный массив в PHP содержит информацию о заголовках, пути и местоположении скрипта, который выполняется в данный момент?
Anonymous voting

Что такое Docker ? Спросят с вероятностью 13% Docker — это платформа для разработки, доставки и запуска приложений в изолированных контейнерах. Она позволяет упаковывать приложения и все их зависимости в контейнеры, которые могут работать на любой системе, поддерживающей Docker, что делает приложения более переносимыми и независимыми от окружения. Основные концепции: 1️⃣Контейнеры: ✅Контейнеры — это легковесные, автономные, исполняемые пакеты, которые включают в себя все необходимое для запуска приложения: код, библиотеки, зависимости и системные инструменты. Контейнеры изолированы друг от друга и от хоста, что обеспечивает консистентность работы приложения в различных средах. 2️⃣Образы (Images): ✅Образ Docker — это неизменяемый шаблон, из которого создаются контейнеры. Образы могут базироваться на других образах и содержат все необходимое для запуска приложения. Например, образ может содержать операционную систему, веб-сервер и само приложение. 3️⃣Dockerfile: ✅Dockerfile — это текстовый файл с инструкциями по созданию Docker-образа. Он содержит последовательность команд, которые Docker выполняет для сборки образа. ✅Пример Dockerfile:
          # Используем базовый образ
     FROM php:8.0-apache

     # Копируем локальные файлы в контейнер
     COPY src/ /var/www/html/

     # Устанавливаем зависимости
     RUN docker-php-ext-install mysqli
     
4️⃣Docker Hub: ✅Docker Hub — это облачный сервис для хранения и обмена Docker-образами. Он позволяет публиковать свои образы и загружать образы, созданные другими пользователями. Преимущества: 1️⃣Портативность: ✅Контейнеры могут работать на любом сервере, где установлен Docker, что позволяет легко перемещать приложения между различными средами (разработка, тестирование, продакшн). 2️⃣Изоляция: ✅Контейнеры изолируют приложения и их зависимости, предотвращая конфликты между различными версиями библиотек и инструментов, используемых на одном сервере. 3️⃣Легковесность: ✅Контейнеры используют общие ресурсы ядра хостовой операционной системы, что делает их более легковесными по сравнению с виртуальными машинами. 4️⃣Быстрое развертывание: ✅Контейнеры можно запускать и останавливать за считанные секунды, что ускоряет процессы разработки, тестирования и развертывания приложений. Если объяснить совсем просто: Docker — это как коробка, в которую вы кладете ваше приложение со всеми нужными вещами, чтобы оно работало одинаково хорошо на любом компьютере. 👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти к списку 385 вопросов на PHP разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых

🤔 Какая функция PHP преобразует HTML-сущности обратно в соответствующие символы?
Anonymous voting

Какие микросервисные паттерны есть ? Спросят с вероятностью 13% Микросервисная архитектура предполагает разделение приложения на множество мелких, автономных сервисов, каждый из которых выполняет определенную бизнес-функцию. Для успешного создания и управления такими системами используются различные паттерны проектирования, которые помогают решать общие проблемы и обеспечивают надежность, масштабируемость и управляемость микросервисов. Вот некоторые из наиболее распространенных микросервисных паттернов: 1️⃣Паттерны управления сервисами Service Registry (Регистратор сервисов) Регистратор сервисов управляет информацией о доступных микросервисах и их местоположении. Когда сервисы запускаются, они регистрируются в регистраторе, и другие сервисы могут использовать эту информацию для обнаружения и взаимодействия с ними. Пример: Eureka, Consul, Zookeeper. Service Discovery (Обнаружение сервисов) Обнаружение сервисов позволяет микросервисам находить друг друга через регистратор сервисов. Существует два типа обнаружения: клиентское (клиент напрямую запрашивает регистратор) и серверное (обнаружение выполняется через промежуточный слой, такой как API Gateway). 2️⃣Паттерны взаимодействия между сервисами API Gateway Действует как единая точка входа для всех клиентов, обеспечивая маршрутизацию запросов к соответствующим микросервисам, а также функции безопасности, авторизации, и ограничения скорости. Пример: NGINX, Kong, AWS API Gateway. Circuit Breaker (Автоматический выключатель) Этот паттерн защищает систему от каскадных отказов, прекращая попытки вызова микросервиса, если он обнаруживает, что сервис не отвечает или отвечает с ошибками. После периода времени попытки возобновляются. Пример: Hystrix, Resilience4j. 3️⃣Паттерны управления данными Database per Service (База данных на сервис) Каждый микросервис имеет собственную базу данных, что способствует автономности и независимости сервисов. Это помогает избежать тесных связей между сервисами на уровне данных. Saga (Сага) Паттерн саги используется для управления распределенными транзакциями, разбивая их на серию локальных транзакций, координируемых через обмен сообщениями. Пример: Axon Framework, NServiceBus. 4️⃣Паттерны обмена сообщениями Event Sourcing (Событийное хранилище) Событийное хранилище сохраняет состояние системы как последовательность событий. Вместо сохранения текущего состояния, система сохраняет все изменения в виде событий, что позволяет воспроизводить текущее состояние, пройдя через все события. CQRS (Command Query Responsibility Segregation) Разделяет модель данных для операций чтения и записи. Модель команд (commands) обрабатывает изменения состояния, а модель запросов (queries) отвечает за чтение данных. 5️⃣Паттерны развертывания Blue-Green Deployment (Синее-зеленое развертывание) Этот паттерн предполагает наличие двух идентичных производственных сред: синей и зеленой. Одна из них активна, а другая используется для развертывания новой версии. После успешного тестирования новая версия переключается и становится активной. Canary Release (Канареечный релиз) Новая версия сервиса развертывается на небольшом количестве узлов, чтобы можно было протестировать её с реальными пользователями и минимизировать риски. Если всё проходит успешно, новая версия разворачивается на остальных узлах. Микросервисные паттерны помогают эффективно разрабатывать, развертывать и управлять микросервисами, обеспечивая надёжность, масштабируемость и гибкость системы. Среди них паттерны управления сервисами, взаимодействия между сервисами, управления данными, обмена сообщениями, развертывания, обеспечения надежности и мониторинга. 👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти к списку 385 вопросов на PHP разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых

🤔 Вопрос: Какой глобальный массив содержит данные, отправленные через форму методом POST?
Anonymous voting