Класс обертки Mysqli by Koenig (Допилить)

9.18K
.
# reaper (14.05.2015 / 21:48)
Ну это очевидно. Тащить зависимости из тестировочных фреймворков в реальный код -- идиотская затея.
совершенно верно. Потому используется такой подход: во время разработки важно покрывать код тестами, assert'ами и подобным максимально, чтоб быстро находить ошибки, а когда код идет в продакшен, тесты и assert'ы отключаются, и код становится легким. Не стоит бояться что у вас не красивый код, если кто то будет вам говорить, что ваши assert'ы в коде не красивые, пусть почитают этот топик )
.
(\/)____o_O____(\/)
Delphinum, ну на конструктор две же думаю оставить исключение, там обычного рода ошибки косяков имени и пароля и тд...
.
Koenig, вообще исключения в конструкторе это отдельная тема. В некоторых языках, таких как C или Java использовать исключения в конструкторе это табу, так как может привести к утечкам памяти (объект занимает память, но не освобождает ее из за исключения).

Что касается твоего случая, тут нужно всего лишь узнать, кто будет эти исключения перехватывать. Если твои исключения будут отлавливаться, то выбрасывай.

Я часто добавляю к документации метода, который выбрасывает исключение, комент вида:
@throws КлассИсключения Описание ситуации, когда это исключение выбрасывается.
на пример:
@throws IOException Выбрасывается, если невозможно получить доступ к файлу или он не существует.
.
(\/)____o_O____(\/)
Delphinum, короче попробую, и там покажу, даже не знаю что получится
.
Delphinum, на твой пост (14.05.2015 / 23:51) отвечу, Thank you
.
(\/)____o_O____(\/)
вот такие пироги
на ковырялся (+/-)
.
(\/)____o_O____(\/)
наверное бред, так как по сути можно обойтись без Стратегии
.
Koenig, а почему не через наследование? Insert это SQL, Update это SQL и т.д., значит это подклассы некоторого класса SQL, со всеми вытекающими, не?
.
Люди берегите воду - пейте пиво...
Последнее время, что то бесят обертки, ОРМ, на чистом больше нравится...
.
venom, часто мы пользуемся ORM даже не замечая этого, взять хотя бы метод PDOStatement::fetchObject, который возвращает результат запроса в виде объекта. С другой стороны метод PDOStatement::bindParam позволяет связать объект с таблицей в БД. Получаем простейшую ORM с прямым отображением полей таблицы на свойства объекта.
Всего: 362