Задать вопрос
Ответы пользователя по тегу Symfony
  • Репозиторий для поиска в БД?

    turintomsk
    @turintomsk
    developer
    Стандартно для подобных случаев реализуется класс (модель) с полным перечнем параметров для конструктора (возможно с default параметрами) и метод, создающий этот объект.
    Модель:
    class Post {
        private $id;
        private $title;
        private $description;
        /** ... etc ... */
    
        public function __construct($id, $title, $description) {
            $this->id = $id;
            $this->title = $title;
            $this->description = $description;
        }
    
        public function getId() {
            return $this->id;
        }
        public function getTitle() {
            return $this->title;
        }
        public function getDescription() {
            return $this->description;
        }
    }

    Методы класса:
    class PostProvider {
        public function getPostById($id) {
            $response = /** ... Получаем данные ...  */;
            if (!$response) {
                throw new Exception('Not found.');
            }
            return $this->createPost($response);
        }
        public function getPostsByTitle($id) {
            $result = [];
            $responses = /** ... Получаем данные ...  */;
            foreach ($responses as $response) {
                $result[] = $this->createPost($response);
            }
            return $result;
        }
    
        /**
         * Метод возвращает объект Post по переданному массиву данных
         * @return Post
         */
        private function createPost(array $response){
            return new Post($response['id'], $response['title'], $response['description']);
        }
    }
    Ответ написан
    1 комментарий