Показать сообщение отдельно
Старый 05.12.2012, 13:34   #2
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

1. Логика работы с БД скрыта - это плюс. Используя $GLOBALS['TYPO3_DB'] вы точно уверены, что обращаетесь к нужной базе. А эта база не обязательно может быть MySQL. http://xavier.perseguers.ch/en/tutor...ing-typo3.html

2. Всякие функции вроде SELECTquery() упрощают конструирование запросов и уменьшают вероятность неправильно что-то сделать - забыть эскейпить параметры и т.п. Также в select обычно автоматом добавляются условия видимости записей, которые заданы в TCA (чаще всего это deleted=0 AND hidden=0 + starttime / endtime).

3. Единая точка выполнения запросов к БД тоже бывает полезна. Например для отладки можно допилить эту одну функцию в $GLOBALS['TYPO3_DB'] для подсчета числа запросов к БД на одну страницу, логировать "медленные" (по времени выполнения) или все запросы.

В $GLOBALS['TYPO3_DB'] есть и простые функции вроде sql_query() - обертка над mysql_query(). Я обычно использую их для запросов со сложной логикой подзапросов.

PS: Для упрощения работы используйте средства IDE! Добавьте в класс переменную:
Код:
/**
* @var t3lib_DB
*/
private $db = null;
А в конструкторе/main() класса объявите:
Код:
$this->db = &$GLOBALS['TYPO3_DB'];
Все же получать подсказки к методам $this->db-> удобней чем вслепую кодить $GLOBALS['TYPO3_DB']->
dmartynenko вне форума   Ответить с цитированием