Создал класс (ООП PHP5) для работы с БД MySQL - покритикуйте, похвалите

флоппик

promotor fidei
Команда форума
Партнер клуба
Кстати, пардон за оффтоп, мне одному ПДО - не нравится его странными ограничениями?
 

Volmir

Новичок
На примере обособленного класса (классов) нельзя научиться ООП. Если ты не занимаешься взаимодействием экземпляров классов, то ты никогда не сможешь сказать насколько класс хорош с точки зрения ООП.
Я не утверждал, что это просто.
Я в течении последних полутора лет активно пишу на PHP5 ООП (проект на основе ZendFramework).
Только последние полгода я начал "интуитивно" понимать внутреннюю логику ООП и взаимодействие между объектами. Стало проще писать взаимосвязанные классы, начал применять активно использовать объекты и писать классы на основе шаблонов проектирования.
 

DYPA

Настоящая dypa (c)
Для обучения "правильному" и "корректному" стилю программирования, ухода от "говонокода", выяснения деталей и нюансов.
+ я собираюсь применять этот класс в простых, "быстрописных" скриптах, где не надо использовать большие фреймворки. Так же есть планы собрать для себя минималистичный, быстрый и занимающий мало места фреймворк (база, шаблонизатор, MVC, конфиг, роутер, внутр сообщения, редирект, обработка ошибок + что-то еще по мелочи), в котором я буду хорошо ориентироваться - для быстрого написания различных проектов.
правильно и корректно использовать уже имеющиеся в php. также корректно сначала ознакомиться с текущими микрофреймворками которые уже написаны до вас
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Например при переопределении PDO_Statement на свой класс ВНЕЗАПНО становится нельзя использовать постоянные соединения. Про проблему переопределения SPL возможностей кажется, grigori писал недавно тоже.
 

Volmir

Новичок
правильно и корректно использовать уже имеющиеся в php. также корректно сначала ознакомиться с текущими микрофреймворками которые уже написаны до вас
Сейчас изучаю и разбираю минифреймворк http://code.google.com/p/web2bb-php52/
Может кто-то знает еще похожую разрабтоку?
 

Volmir

Новичок
Добавил функцию, которая считает трафик, полученный от MySQL

PHP:
	/**
	 * Returns database traffic in this connection (bytes)
	 * @return int
	 */
	public function getTotalTraffic()
	{
		if (is_null($this->_total_traffic))
		{
			try
			{
				$this->query("SHOW STATUS LIKE 'Bytes_sent'");
				$this->_total_traffic = $this->result[0]['Value'];
			}
			catch (Exception $e)
			{
				$this->_total_traffic = null;
			}
		}
		return $this->_total_traffic;
	}
И показ результатов ее работы:

PHP:
echo 'Mysql traffic: <b>' . number_format($db->getTotalTraffic() / 1024, 1, '.', ' ') . 'Kb</b>';
 

Volmir

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

Типа:
PHP:
	public function oneQuery()
	{
		$rows = $this->qurey("SELECT * FROM news LIMIT 0,1");
		return isset($rows[0]) ? $rows[0] : null;
	}
 

HraKK

Мудак
Команда форума
Нету в планах на будущее ORM сделать?! Я прослежусь!))))))))))))))))))))))))))))
Ну плз!!!!!!!!!!!!!!!!!!!


А то ОНАТОЛИЙ негодуэ по поводу тормозов Doctrine!!!!!!!!
 

Volmir

Новичок
Нету в планах на будущее ORM сделать?!
Увы (или "Ура"), но планов насчет ORM у меня нет.
Конечно, работа с записями в БД, как с объектами - вещь интересная, но ресурсоемкая (в работе) и сложная (в написании).
Поэтому ORM оставим для "монстров" программирования. Ограничимся пока массивами.
 

HraKK

Мудак
Команда форума
Volmir
Ну фаааааак.А если мы пожертвуем средства на написание?
 

HraKK

Мудак
Команда форума
Риальна?! У меня много работы, не хочешь ради интереса поработать?
 

Volmir

Новичок
Риальна?! У меня много работы, не хочешь ради интереса поработать?
Могу поработать, ради интереса, но - за деньги :)
Если предложение реальное - пиши в личку.
 

weregod

unserializer
да пускай человек балуется, кто своих db не писал?

Добавил функцию, которая считает трафик, полученный от MySQL
1. если вызовать ф-цию дважды во время скрипта, она вернёт одинаковые значения, зачем кэшировать результат?
2. как часто нужна эта статистика? если она нужна иногда, я бы вынес данную ф-цию в какой-то сервисный или отладочный класс
 

Ragazzo

TDD interested
Volmir
>>Поэтому ORM оставим для "монстров" программирования
Так ты далеко не уедешь...
 

Volmir

Новичок
>>Поэтому ORM оставим для "монстров" программирования
Так ты далеко не уедешь...
Нет, я использую ОРМ в своей повседневной работе, но сказать, что она очень быстрая и простая в поддержке не могу.
 

Volmir

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

Ну и вообще, иногда полезно смотреть объем пропускаемого через БД трафика.
 

weregod

unserializer
Она очень нужна, если есть оплата за внутренний трафик между серверами (веб-сервер и сервер БД находятся на разных машинах).
можно только посочувствовать идиотизму ситуации

Ну и вообще, иногда полезно смотреть объем пропускаемого через БД трафика.
если иногда, тогда методу нечего делать в основном коде. если пишите бенчи трафика при каждом обращении к скрипту безусловно, тогда место в основном классе.
 
Сверху