From bf98f4354cfe8727d77829f5fee96498095a366e Mon Sep 17 00:00:00 2001 From: Aleksandr Shelkovin Date: Fri, 31 Jan 2025 09:55:19 +0300 Subject: [PATCH] axios --- AXIOS/page.php | 270 +++++++++++++++++++++++++++++++++++-------------- 1 file changed, 195 insertions(+), 75 deletions(-) diff --git a/AXIOS/page.php b/AXIOS/page.php index aa63904..9f0adb3 100644 --- a/AXIOS/page.php +++ b/AXIOS/page.php @@ -1,8 +1,5 @@ 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(); + } +} + + +// Клиентский код +$builder = new ConcreteCarBuilder(); +$car = $builder->setModel('Audi A6')->setColor('Синий')->setEngine('V6')->build(); +echo $car . PHP_EOL; + +$director = new CarDirector(); +$car2 = $director->constructCar($builder); +echo $car2; + + +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) + { + $this->data = $data; + $this->limit = isset($_GET['limit']) ? $_GET['limit'] : self::LIMIT; + $this->offset = isset($_GET['offset']) ? $_GET['offset'] : self::OFFSET; + } + + public function setFeed() + { + $portial = array_slice($this->data, $this->offset, $this->limit); + $this->feed = '