Класс для MySQL: Стоит ли делать его Static

SpYeR

Новичок
Класс для MySQL: Стоит ли делать его Static

Здравствуйте.

Вот пишу свою кмс, и возник вопрос: Может ст0ит сделать класс для работы с мускулем статичным?
Вернее, не класс, а его функции такие как подключение к бд, запросы, "обезопасивание" запросов...
Подскажите, пожалуйста, как лучше?

Спасибо)
 

Gas

может по одной?
Получается что и его аттрибуты (тот-же connection_id или mysqli объект) делать статичными ?
Я бы не стал. Если он нужен в разных объектах и не хочется заново создавать или передавать - смотри в сторону registry или singleton'а.
 

Gas

может по одной?
crocodile2u
если меня имел ввиду, то есно известно, но как говорится "старый друг - лучше новых двух" :)

кстати, у тебя вокруг pdo своей обёртки нет?
 

Fred

Новичок
Автор оригинала: crocodile2u
не буду навязывать, но, тем не менее - некоторые просто не знают о существовании PDO: http://php.net/pdo
Да, да, именно от тебя и узнал :)

Автор оригинала: Gas
кстати, у тебя вокруг pdo своей обёртки нет?
У меня PDO без обертки и лежит в Registry
 

kode

never knows best
Re: Класс для MySQL: Стоит ли делать его Static

Автор оригинала: SpYeR
Здравствуйте.

Вот пишу свою кмс, и возник вопрос: Может ст0ит сделать класс для работы с мускулем статичным?
Вернее, не класс, а его функции такие как подключение к бд, запросы, "обезопасивание" запросов...
Подскажите, пожалуйста, как лучше?

Спасибо)
Есть иногда смысл использовать фабрику и/или ServiceLocator....

Например:

PHP:
ServiceLocator::set('db', DB::driver('mysql',$db_config));
....
$db = ServiceLocator::get('db')'
 

HraKK

Мудак
Команда форума
ServiceLocator::set('db', DB::driver('mysql',$db_config));
....
$db = ServiceLocator::get('db')
Понавыдумывают много умных слов.
PHP:
Registry::set('db', DB::driver('mysql',$db_config)); 
.... 
$db = Registry::get('db')
Что изменилось?
 

kode

never knows best
Автор оригинала: HraKK
Понавыдумывают много умных слов.
PHP:
Registry::set('db', DB::driver('mysql',$db_config)); 
.... 
$db = Registry::get('db')
Что изменилось?
Как не называйте - рога всёравно не вырастут.
 

AmdY

Пью пиво
Команда форума
если используешь пдо, тогда пиши DB::driver('pdo_mysql',$db_config)
если ты сделаешь подключение статическим, ты ограничишь возможности класса, так, например, нельзя будет завести 2 конекта к БД.
 

WP

^_^
А у меня основной коннект к СУБД лежит в xE::$db, и все обращения через него. Registry это каждый раз лишний вызов функции, а производительность мне дорога.
 

kode

never knows best
WP
так уж много жрёт вызов Registry???? имхо бред сказал....
 

crocodile2u

http://vbolshov.org.ru
Во многом это всего лишь вопрос предпочтений. Я использую тот же подход, что и WP и не жужжу :)

Имхо, все эти реестры и т. п. - для случая, когда разработчик хочет получить API, максимально устойчивый к действиям пользователя (xE::$db может любой перезаписать и никто слова не скажет, а вот с реестром мы от этого застрахованы).

Если необходимости в подобной защите от дурака нет - любой подход хорош - и я лично выбираю самый простой (ну или один из самых простых).

-~{}~ 01.02.08 10:26:

Gas
кстати, у тебя вокруг pdo своей обёртки нет?
У меня есть шлюз таблицы данных, и активная запись + довольно примитивный квери-обджект:

http://svn.berlios.de/wsvn/naf/trunk/Naf/Table.php
http://svn.berlios.de/wsvn/naf/trunk/Naf/Record.php
http://svn.berlios.de/wsvn/naf/trunk/Naf/Select.php

(ну и до кучи - вдруг кто решит скачать :) - валидатор для активной записи):
http://svn.berlios.de/wsvn/naf/trunk/Naf/Validator.php

Кстати, да, надо заметить: шлюз таблицы данных и активная запись у меня тоже довольно примитивные - никаких связей между объектами, никакого фетчинга в виде объектов-актиных-записей и прочего.
 

SpYeR

Новичок
Всем спасибо)
Сделал пока Singleton'ом. Понравилось))
Читаю книгу "Design patterns elements of reusable object-oriented software"... Там нет ничего про Registry, может у него какое-нибудь другое название?

А PDO есть в стандартном пакете? Допустим, если я на среднестатический хостинг ставить буду, то он там будет?
 
Сверху