<?php
interface UserInterface
{
public function getFirstName();
public function getLastName();
public function getLogin();
}
/**
* Class User
*
* @property string $firstName
* @property string $lastName
* @property string $login
*/
class User extends \yii\db\ActiveRecord implements UserInterface
{
...
public function getFirstName()
{
return $this->firstName;
}
public function getLastName()
{
return $this->lastName;
}
public function getLogin()
{
return $this->login;
}
}
class TestController
{
/**
* Здесь явно указываем тип переменной, которую ожидаем. Если мы передадим
* объект, который не имплиментирует нужный интерфейс, то будет ошибка.
*
* @param UserInterface $user
*/
public function actionTest(UserInterface $user)
{
$name = $user->getFirstName();
...
}
}
$note->user;
$note->users;
где правильнее по MVC реализовать функции работы с АПИ - в модели или контроллере?