Error (fetchAll): SQLSTATE[HY000]: General error: 1 no such table: file_info

Шаблон Strategy (Стратегия)

28-08-2019Время чтения ~ 1 мин.

Error (fetchAll): SQLSTATE[HY000]: General error: 1 no such table: file_info
php-oop 8673

Strategy — поведенческий шаблон, где используются разные алгоритмы в одном объекте. То есть Стратегия позволяет выделить отдельные конкретные алгоритмы, а после их использовать в базовом классе.

Пример кода вы можете посмотреть на гитхабе. Рассмотрим его работу.

Есть некий базовый класс (Context), который может обрабатывать какие-то данные разными способами. Например обработка простого текста, json-, xml-данных и т.д. Чтобы не создавать классы под каждый обработчик, их делают отдельными (StrategyA, StrategyB). А чтобы объекты были совместимы, они реализуют единый интерфейс (Strategy), о котором также знает базовый класс.

При инстанцировании базового класса, в его конструктор передаётся и объект алгоритма. Дальше он выполняется собственным методом.

Шаблон Strategy достаточно простой для понимания, поэтому может использоваться в самых разных задачах. Главное его преимущество в том, что с его помощью мы можем разделить код на подзадачи, и при этом отказаться от сложных if-условий в базовом классе. Ну и помимо всего, при таком подходе, очень просто увеличивать функциональность приложения, не изменяя базовый класс: достаточно добавить новый класс алгоритма.

Error (fetchAll): SQLSTATE[HY000]: General error: 1 no such table: file_info
Error in /home/maxsite/domains/maxsite.org/public_html/templates/default/parts/content/400-other-pages.php
Type: TypeError
Message: count(): Argument #1 ($value) must be of type Countable|array, false given
File: /home/maxsite/domains/maxsite.org/public_html/templates/default/parts/content/400-other-pages.php
Line: 59