<?php
class Task extends AbstractTask implements TaskInterface
{
}
class TasksManager extends AbstractTasksManager implements TasksManagerInterface
{
}
class AbstractTasksManager implements asksManagerInterface
{
public function find(TaskInterface $task)
{
/** Внедрить метод find в TasksManager правильно?
* Или он должен быть в отдельном классе?
* Метод find использует скоупы Yii2
*/
}
public function create(TaskInterface $task)
{
/** Содержимое метода */
}
public function update(TaskInterface $task)
{
/** Содержимое метода */
}
public function delete(TaskInterface $task)
{
/** Содержимое метода */
}
}
<?php
interface TasksManagerInterface
{
public function find(TaskInterface $task);
public function create(TaskInterface $task);
public function update(TaskInterface $task);
public function delete(TaskInterface $task);
}
interface TaskInterface
{
public function find(TaskInterface $task);
public function create(TaskInterface $task);
public function update(TaskInterface $task);
public function delete(TaskInterface $task);
}
abstract class AbstractTask implements TaskInterface
{
protected function _commonTask() {
// какой то общий метод для всех потомков AbstractTask
}
abstract public function find(TaskInterface $task);
abstract public function create(TaskInterface $task);
abstract public function update(TaskInterface $task);
abstract public function delete(TaskInterface $task);
}
abstract class AbstractTasksManager implements TasksManagerInterface
{
protected function _commonTasksManager() {
// какой то общий код для всех потомков AbstractTasksManager
}
abstract public function find(TaskInterface $task);
abstract public function create(TaskInterface $task);
abstract public function update(TaskInterface $task);
abstract public function delete(TaskInterface $task);
}
class Task extends AbstractTask implements TaskInterface
{
public function find(TaskInterface $task)
{
/** Внедрить метод find в TasksManager правильно?
* Или он должен быть в отдельном классе?
* Метод find использует скоупы Yii2
*/
// можно вызывать
$this->_commonTask();
}
public function create(TaskInterface $task)
{
/** Содержимое метода */
}
public function update(TaskInterface $task)
{
/** Содержимое метода */
}
public function delete(TaskInterface $task)
{
/** Содержимое метода */
}
}
class TasksManager extends AbstractTasksManager implements TasksManagerInterface
{
public function find(TaskInterface $task)
{
/** Внедрить метод find в TasksManager правильно?
* Или он должен быть в отдельном классе?
* Метод find использует скоупы Yii2
*/
// можно вызывать
$this->_commonTasksManager();
}
public function create(TaskInterface $task)
{
/** Содержимое метода */
}
public function update(TaskInterface $task)
{
/** Содержимое метода */
}
public function delete(TaskInterface $task)
{
/** Содержимое метода */
}
}
$task = new Task();
$taskManager = new TasksManager();