Напишите код в парадигме ООП, соответствующий следующей структуре. Сущности: Пользователь, Статья. Связи: Один пользователь может написать несколько статей. У каждой статьи может быть только один пользователь-автор. Функциональность: возможность для пользователя создать новую статью; возможность получить автора статьи; возможность получить все статьи конкретного пользователя; возможность сменить автора статьи. Если вы применили какие-либо паттерны при написании, укажите какие и с какой целью. Код, реализующий конкретную функциональность, не требуется, только общая структура классов и методов. Код должен быть прокомментирован в стиле PHPDoc.
У меня вышло как-то так. Только сильно не бейте, сам понимаю, что это ад. Но хоть скажите, это хоть немного похоже на задание или вообще мимо?
<?
// Класс пользователя
class user {
// данные (свойства):
var $name; // имя пользователя
var $id; // id пользователя
// Конструктор, в котором по $id загружаются данные пользователя
// например $this->name
function user($id) {
// т.к. было сказано код функционала не писать, сделаю так...
$this->name = 'test'; // Тут вынимаем из базы имя
$this->id = $id;
}
// создаю новую статью с user_id = $this->id
function creat_article() {
$article = new Article($this->id);
}
// получить все статьи конкретного пользователя
function creat_article() {
$article = new Article; // Создаю без id, чтоб получился "пустой" объект
$article->find_by_user($this->id); // а тут выбираю все статью данного user-а
}
}
// А вот и класс самой статьи
class Article() {
// данные (свойства):
var $user_id; // имя пользователя
var $array_of_article = array(); // Тут буду сидеть все статьи...
// Конструктор
function Article($user_id == nuul) {
// Если в конструктор отправлен id то сразу нахожу его...
if ($user_id) {
$this->user_id = $user_id;
}
}
function find_by_user($user_id == nuul) {
// ищу все статьи данного пользователя...
if ($user_id) {
$this->user_id = $user_id;
}
// Делаю проверку т.к. объект может быть создан без id и в данный метод он может быть не отправлен...
if ($this->user_id) {
// В какой-нибудь массив складываю статьи....
$this->array_of_article[] = ''; // Вынимаю из базы статью и кладу в массив....
}
}
function change_user($new_user_id == nuul) {
if ($new_user_id) {
$this->user_id = $new_user_id;
// И сразу исскуственно вызываю конструктор
Article($new_user_id)
}
}
}