From 58ba8436b5db1a361f4a92e785276851a3e05b0e Mon Sep 17 00:00:00 2001 From: Aleksandr Shelkovin Date: Fri, 31 Jan 2025 10:28:11 +0300 Subject: [PATCH] mm --- AXIOS/page.php | 248 ++++++++++++++++++------------------------------- 1 file changed, 89 insertions(+), 159 deletions(-) diff --git a/AXIOS/page.php b/AXIOS/page.php index 9f0adb3..1c44c95 100644 --- a/AXIOS/page.php +++ b/AXIOS/page.php @@ -22,200 +22,130 @@ $arrMusic = [ '6 месяцев', ]; -class Page -{ - public string $html; - public string $feed; - public string $paginator; - public string $button; +class Page { + public string $html = ""; + public string $feed = ""; + public string $paginator = ""; // ... другие свойства - public function __construct() {} + public function __construct() {} // Пустой конструктор - public function __toString(): string - { - return "Модель: {$this->feed}, Цвет: {$this->paginator}, Двигатель: {$this->button}"; - } -} -interface PageBuilder -{ - public function setFeed(): PageBuilder; - public function setPaginator(): PageBuilder; - // public function setBuild(string $engine): PageBuilder; - // ... другие методы для установки свойств - public function build(): Page; -} -// ConcreteBuilder -class MusicPageBuilder implements PageBuilder -{ - private Car $car; - - public function __construct() - { - $this->car = new Car(); - } - - public function setModel(string $model): CarBuilder - { - $this->car->model = $model; - return $this; - } - - public function setColor(string $color): CarBuilder - { - $this->car->color = $color; - return $this; - } - - public function setEngine(string $engine): CarBuilder - { - $this->car->engine = $engine; - return $this; - } - - // ... другие методы для установки свойств - - public function build(): Car - { - return $this->car; - } -} - -// Director (необязательный) -class CarDirector -{ - public function constructCar(CarBuilder $builder): Car - { - return $builder->setModel('BMW X5')->setColor('Черный')->setEngine('V8')->build(); + public function __toString(): string { + return $this->html; } } -// Клиентский код -$builder = new ConcreteCarBuilder(); -$car = $builder->setModel('Audi A6')->setColor('Синий')->setEngine('V6')->build(); -echo $car . PHP_EOL; +interface PageBuilder { + public function setFeed(); + public function setPaginator(); +// ... другие методы для установки свойств + public function build(); +} -$director = new CarDirector(); -$car2 = $director->constructCar($builder); -echo $car2; +//implements PageBuilder { +class MusicPageBuilder implements PageBuilder { + private Page $page; -exit(); - -define('LIMIT', 5); -define('OFFSET', 0); - - - -// class Paginator -// { const LIMIT = 5; const OFFSET = 0; private $data = []; - private $limit = null; - private $offset = null; - private $feed = ""; - private $paginator = ""; - public function __construct($data) - { + private $limit = Null; + private $offset = Null; + private $flag = 'ajax'; + + + public function __construct($data, $flag = 'ajax' ) { + + $this->page = new Page(); + $this->flag = $flag; $this->data = $data; - $this->limit = isset($_GET['limit']) ? $_GET['limit'] : self::LIMIT; - $this->offset = isset($_GET['offset']) ? $_GET['offset'] : self::OFFSET; + $this->limit = isset($_GET['limit'])? $_GET['limit'] : self::LIMIT; + $this->offset = isset($_GET['offset']) ? $_GET['offset']: self::OFFSET; } - public function setFeed() - { + public function setFeed(){ $portial = array_slice($this->data, $this->offset, $this->limit); - $this->feed = '