Здравствуйте.
Никак не могу найти ответ на свой вопрос.
Допустим, есть задание :
Определить по введенным в поле цифрам через запятую геометрическая это прогрессия или нет.
Дак вот, в модели мне нужно следовать канонам ООП (создание классов, которые отвечают каждый за свое) или же умещать все а разные методы под одним классом, который наследован от model?
Нужно ли в моделе вообще создавать классы или это делается где то в другом месте?
Прошу натолкнуть на правильный путь.
Классы в модели или это безобразие.
-
- Сообщения: 10
- Зарегистрирован: 2019.02.23, 22:55
-
- Сообщения: 10
- Зарегистрирован: 2019.02.23, 22:55
Re: Классы в модели или это безобразие.
Это значит, что другие классы должны работать (вызываться) классом, который наследуется от model? А класс наследуемый от model в свою очередь работает с контроллером. Правильно?
И прошу объяснить в каком случае используется репозиторий?
И прошу объяснить в каком случае используется репозиторий?
Re: Классы в модели или это безобразие.
Код: Выделить всё
class ProgressionInput
{
/**
* @var string
*/
private $input;
public function __construct(string $input)
{
$this->input = $input;
}
public function isProgression() : bool
{
//здесь будет код, который определяет, прогрессия это или нет, если прогессия return true, нет return false
}
}
-
- Сообщения: 10
- Зарегистрирован: 2019.02.23, 22:55
Re: Классы в модели или это безобразие.
Ничего не понимаю))
Вот есть у нас например модель:
Могу ли я сделать так:
То есть, в модели я создал несколько других классов, которые отвечают каждый за свое.
Затем, в классе Geometry, который наследуется от model я буду передавать все в контроллер.
Прошу не смотреть на правильность кода, писал здесь, в редакторе.
Вопрос в том, можно ли в модели создавать другие классы и бизнес-логику хранить там ?
Или это делается в другом месте ?
Вот есть у нас например модель:
Код: Выделить всё
<?php
namespace app\models;
use Yii;
use yii\base\Model;
class Geometry extends Model
{
public $progression;
public function rules()
{
return [
[['progression'], 'required','message' => 'Заполните поле'],
[['progression'], 'match', 'pattern' => '~^(?:|(?:\d+\,*)*\d+)$~', 'message' => 'Поле может содержать только цифры и запятые']
];
}
}
Код: Выделить всё
<?php
namespace app\models;
use Yii;
use yii\base\Model;
class Geometry extends Model
{
public $progression;
public function rules()
{
return [
[['progression'], 'required','message' => 'Заполните поле'],
[['progression'], 'match', 'pattern' => '~^(?:|(?:\d+\,*)*\d+)$~', 'message' => 'Поле может содержать только цифры и запятые']
];
}
public function GeometryFinish()
{
$GeometryDefine= new GeometryDefine();
return $GeometryDefine->GeometryDefine();
}
}
class GeometryArray
{
public function GeometryArray()
{
//здесь код, который будет разбивать текст из поле ввода на массив
}
}
class GeometryDefine
{
public function GeometryDefine()
{
//здесь код, который будет определять прогрессия это или нет
}
// здесь, например, другие нужные методы
}
Затем, в классе Geometry, который наследуется от model я буду передавать все в контроллер.
Прошу не смотреть на правильность кода, писал здесь, в редакторе.
Вопрос в том, можно ли в модели создавать другие классы и бизнес-логику хранить там ?
Или это делается в другом месте ?
Re: Классы в модели или это безобразие.
Конечно, можете. Главное чтобы было тестируемо.Vladbara705 писал(а): ↑2019.02.24, 15:56 Вопрос в том, можно ли в модели создавать другие классы и бизнес-логику хранить там ?
Или это делается в другом месте ?