Akdmeh » 2009.07.27 22:10

Вот решил для убоства написать класс my_view(MySQL viewer)
Возможность одна.
Часто есть id пользователя, и надо взять одно значение с таблицы, например его логин, но делать это с помощью mysql_query, согласитесь, немного долго.
Вот я и подумал, почему бы не воспользоваться возможностями OOP?
Итак, как всё это работает:
$user=my_view('users', 1);
записываем таблицу users, и id 1
в будущем это изменяется с помощью методов id($new_id) и table($new_table).
И нам нужно его логин, который находиться в поле `login`.
Как мы делали бы без этого класса -
$r=mysql_query('SELECT `login `FROM `users` WHERE `id`=1');
$login=mysql_result($r, 0);
В конце концов мне это надоело, и этот класс делает так:
$login=$user->login;
Также можно значение установить:
$user->id(5);
$user->login='Андрей';
Ещё можно взять все поля с данным id:
print_r($user->all());


Вот. В принципе, скорости код этот не добавит(может наоборот отнимет(?)), но удобства добавит, при чём мне кажется немало.
Хотелось бы рецензию Геморроя, который бы по возможности потратил минуту на просмотр этого класса, и указал его сильные и слабые стороны, возможно рекомендации по изменению.
//тем, кому ООП в php ничего не говорит - просто не напрягайтесь;)
Добавлено спустя   1 минуту  9 секунд:
Вот сам файл, не понял, как прикрепить. ::thumb229::

Akdmeh » 2009.07.28 00:12

убрал пока, переработаю ща

Gemorroj » 2009.07.28 09:18

На мой взгляд если делать подобную абстракцию, то не стоит ограничиваться только mysql_query. В противном случае от замены одной только этой функции больше путаницы чем удобства прибавится. В PEAR (и не только) уже есть хорошие классы для работы с БД.

Akdmeh » 2009.07.28 10:49

Понимаю, что есть Пеар, но хочется ведь своего;)
Добавлено спустя   1 минуту  35 секунд:
Основная задача класса - взять определённое поле с определённого id, часто надо взять логин id 5, и что бы это делать - надо долго мучаться.
Конечно. расширить можно, но как - пока нд этим думаю.

Akdmeh » 2009.07.28 13:43

Вот.
Прошу посмотреть, тыкнуть, может подсказать что-то;)

Gemorroj » 2009.07.28 18:54

ну фильтровать переменные наверное следует.

Akdmeh » 2009.07.28 19:13

Думаю, о фильтрации надо думать до того, как использовать класс.
будут ещё замечания, или что-то добавить?)

Gemorroj » 2009.07.28 19:19

да я вобщем-то все сказал в 3 посте. если делать абстракцию от БД, то лучше использовать готовые решения. просто не вижу для чего нужно делать выделение отдельной функции в класс.

Akdmeh » 2009.07.28 20:39

Ясн)