Форум программистов, компьютерный форум, киберфорум
Наши страницы

PHP

Войти
Регистрация
Восстановить пароль
 
WebProgrammer1
16 / 16 / 5
Регистрация: 24.01.2014
Сообщений: 187
#1

Как правильно описать сущности движка? - PHP

15.06.2014, 11:59. Просмотров 249. Ответов 1
Метки нет (Все метки)

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
<?php
/**
 * Описывает форум как объект
 * @version 0.0.1
 * @package Core
 * @subpackage Objects
 */
class Forum {
    /**
    * ID форума
    * @var int
    */
    private $id = 0;
    
    /**
    * ID категории
    * @var int
    */
    private $cat_id = 0;
    
    /**
    * ID родительского форума
    * @var int
    */
    private $parent_id = -1;
    
    /**
    * Название форума
    * @var string
    */
    private $title = '';
    
    /**
    * Количество сообщений в форума
    * @var int
    */
    private $posts = 0;
    
    /**
    * Количество тем в форума
    * @var int
    */
    private $topics = 0;
    
    /**
    * ID темы с последним сообщением
    * @var int
    */
    private $last_topic_id = 0;
    
    /**
    * Название темы с последним сообщением
    * @var string
    */
    private $last_topic_title = '';
    
    /**
    * Время добавления последнего сообщения
    * @var int
    */
    private $last_time = 0;
    
    /**
    * ID пользователя, который добавил
    * последнее сообщение
    * @var int
    */
    private $last_user_id = 0;
    
    /**
    * Логин пользователя, который добавил
    * последнее сообщение
    * @var string
    */
    private $last_user_name = '';
    
    /**
    * Позиция форума
    * @var string
    */
    private $position = 0;
    
    /**
    * Сериализованный массив со списком прочитавших
    * @var string
    */
    private $read_data = array();
    
    /**
    * Флаг нового форума
    * @var bool
    */
    private $_New = false;
 
    /**
    * Конструктор класса
    * @param int $id ID форума
    * @param string $where По какому полю получать форум
    * @return bool
    */
    public function __construct($id=-1, $where='id=?i') {
        if ($id == -1) {
            $this->_New = true;
            return false;
        }
    
        $Forum = db::getRow('SELECT * FROM exbb_forums WHERE '.$where, $id);        
        
        if (!isset($Forum['id'])) {
            throw new Exception('Такого форума не существует!');
        }
 
        $this->id = $Forum['id'];
        $this->cat_id = $Forum['cat_id'];
        $this->parent_id = $Forum['parent_id'];
        $this->title = $Forum['title'];
        $this->posts = $Forum['posts'];
        $this->topics = $Forum['topics'];
        $this->last_topic_id = $Forum['last_topic_id'];
        $this->last_topic_title = $Forum['last_topic_title'];
        $this->last_time = $Forum['last_time'];
        $this->last_user_id = $Forum['last_user_id'];
        $this->last_user_name = $Forum['last_user_name'];
        $this->position = $Forum['position'];
 
        return true;
    }       
        
    /**
    * Создаёт объект из массива
    * @param array $Forum массив с данными форума
    * @return void
    */
    public function createFromArray($Forum) {
        $this->id = $Forum['id'];
        $this->cat_id = $Forum['cat_id'];
        $this->parent_id = $Forum['parent_id'];
        $this->title = $Forum['title'];
        $this->posts = $Forum['posts'];
        $this->topics = $Forum['topics'];
        $this->last_topic_id = $Forum['last_topic_id'];
        $this->last_topic_title = $Forum['last_topic_title'];
        $this->last_time = $Forum['last_time'];
        $this->last_user_id = $Forum['last_user_id'];
        $this->last_user_name = $Forum['last_user_name'];
        $this->position = $Forum['position'];
        $this->_New = false;
    }
        
    /**
    * Возвращает ID форума
    * @return int
    */
    public function getId() {
        return $this->id;
    }
 
    /**
    * Возвращает ID категории
    * @return int
    */
    public function getCatId() {
        return $this->cat_id;
    }
 
    /**
    * Устанавливает ID категории
    * @param int $CatId ID категории
    * @return void
    */
    public function setCatId($CatId) {
        $this->cat_id= $CatId;
    }
 
    /**
    * Возвращает ID родительского форума
    * @return int
    */
    public function getParentId() {
        return $this->parent_id;
    }
 
    /**
    * Устанавливает ID родительского форума
    * @param int $ParentId ID родительского форума
    * @return void
    */
    public function setParentId($ParentId) {
        $this->parent_id= $ParentId;
    }
    
...............................
    /**
    * Сохраняет форум в БД
    * @return void
    */
    public function save() {
        if ($this->_New == true) {
            db::query('INSERT INTO exbb_forums SET cat_id=?i, parent_id=?i, title=?s, posts=?i, topics=?i, last_topic_id=?i, last_topic_title=?s, last_time=?i, last_user_id=?i, last_user_name=?s, position=?i, read_data=?s',
            $this->cat_id, $this->parent_id, $this->title, $this->posts, $this->topics, $this->last_topic_id, $this->last_topic_title, $this->last_time, $this->last_user_id, $this->last_user_name, $this->position, serialize($this->read_data));
        }
        else {
            db::query('UPDATE exbb_forums SET cat_id=?i, parent_id=?i, title=?s, posts=?i, topics=?i, last_topic_id=?i, last_topic_title=?s, last_time=?i, last_user_id=?i, last_user_name=?s, position=?i, read_data=?s WHERE id=?i',
            $this->cat_id, $this->parent_id, $this->title, $this->posts, $this->topics, $this->last_topic_id, $this->last_topic_title, $this->last_time, $this->last_user_id, $this->last_user_name, $this->position, serialize($this->read_data), $this->id);
        }
    }
 
    /**
    * Удаляет форум из БД
    * @return void
    */
    public function delete() {
        if ($this->_New == true) {
            throw new Exception('Ошибка удаления форума!');
        }
        
        db::query('DELETE FROM exbb_forums WHERE id=?i', $this->id);
    }
}
есть класс, который описывает сущность "Форум" (пишу форумный движок). Для каждого поля в базе данных есть свойство в классе и 2 метода (получить, изменить). Со временем их становится довольно много.
При добавлении нового поля в базу данных приходится создавать свойство класса и создавать для него 2 метода.

Может быть лучше будет объявить свойства не приватными, а публичными, а методы убрать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.06.2014, 11:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как правильно описать сущности движка? (PHP):

Как правильно описать select? - PHP
Здравствуйте! есть форма отправки, в которой имеется select &lt;span&gt;Цвет: &lt;select&gt; &lt;option value=&quot;val1&quot;&gt;Черный&lt;/option&gt; ...

Как узнать требования движка - PHP
Здравствуйте. Подскажите, как можно узнать требования движка написанного на PHP. То есть какую минимальную версию php стоит использовать?...

Html -сущности - PHP
Добрый день. Такая вот проблема. Достаю из бд строку '/room.htm?id=$_SESSION'. Как вы понимаете, $_SESSION должен заменятся на...

Мнемоники (сущности) спецсимволов - PHP
Первый и третий используются в html. А другие два где применяются в Веб программировании ?

Выборка из сущности и вывод информации :) - PHP БД
Доброе утро! Проблема заключается со знаниями sql. (На стадии изучения) Суть проблемы: Есть в бд таблица user, в каждом...

Как правильно описать метод внутри другого метода одного и того же класса? - PHP ООП
Извияюсь за возможно глупый вопрос, но ООП тема для меня новая.Вот так выглядел метод класса в начале: public function...

1
ads
363 / 370 / 65
Регистрация: 01.12.2013
Сообщений: 1,629
15.06.2014, 13:44 #2
Цитата Сообщение от WebProgrammer1 Посмотреть сообщение
Может быть лучше будет объявить свойства не приватными, а публичными, а методы убрать?
в вашем примере не имеет никакого смысла использовать методы для доступа к свойствам. Ведь нет же никаких условий доступа на чтение и на запись. Поэтому в данном конкретном случае можно использовать публичные свойства
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.06.2014, 13:44
Привет! Вот еще темы с ответами:

Как реализовать представление сущности (и зависящих от неё других сущностей) - PHP ООП
Всем привет. Пытаюсь найти наиболее удобный способ работы с представлением сущности. На удивление, не нашёл информацию по этому поводу...

Несколько контроллеров для одной сущности - PHP ООП
Есть страница /profile ... У этой страницы есть подразделы: /profile/inventory /profile/wallet и т.д ... Имеется...

Doctrine 2 и связанные сущности - PHP
Как реализовать связь, при которой в качестве внешнего ключа выступает id другой таблицы? Проблема в том, что при каскадном обновлении...

Связанные сущности Doctrine2 - PHP
Здравствуйте, у меня был и есть интернет магазин на KO3 Сейчас я портирую его на последнюю стабильную версию Symfony 2.6 в которой я пока...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru