База с данни

dakata__92

Super Moderator
Имам един метод с който си викам класовете с имплементиран интерфейс. Логически си работи добре и всичко и е наред, просто ми се струва, че структорно съм я измислил грешно. Моля да ми дадети идеи как да я подобря.
PHP:
public function dataBaseConnection($CLASS = "\system\database\PDO",$dbname=null){
		if(empty($this->dbConnection)){
			$opt = $this->MDC()->load('database/connection');
			$this->CLASS = $CLASS;
			if(empty($dbname)){
				return $this->dbConnection = new $this->CLASS($opt['host'],$opt['user'],$opt['pass'],$opt['name']);
			}
			return $this->dbConnection = new $this->CLASS($opt['host'],$opt['user'],$opt['pass'],$dbname);
		}
		return $this->dbConnection;
	}
 
Какво искаш да му подобряваш?
Signleton с option-и ... каква толкова логика имаш?

Мен името на метода не ми хареса getConnection ми се връзва повече ;)
 
borovaka каза:
Какво искаш да му подобряваш?
Signleton с option-и ... каква толкова логика имаш?

Мен името на метода не ми хареса getConnection ми се връзва повече ;)
Да бе ама нали тука едни колеги спореха, че get трябва само да взима а не и да сетва. Просто де да знам не съм сигурен дали идеята ми да подавам неймспейса и класът като стринк и после спрямо него да създавам някакъв обект.
 
Можеш да подаваш като стринг pdo, mysqli и т.н, и според тях да правиш съответните действия (виж factory pattern).
Ти така и не разбра относно get и защо спорихме. Прочети за ООП, наистина. Най-малкото, методите трябва да имат глагол в името си.
 
djman каза:
Можеш да подаваш като стринг pdo, mysqli и т.н, и според тях да правиш съответните действия (виж factory pattern).
Ти така и не разбра относно get и защо спорихме. Прочети за ООП, наистина. Най-малкото, методите трябва да имат глагол в името си.
За глагола ще го имам в предвид а за фабриката http://php.net/manual/bg/language.oop5.patterns.php ясно но целият метод е в един сингълтон. Ще взема под внимание мнението ти. :?:
 
Можеш да си направиш и клас който да ти обслужва DB-то.
Примерно Singleton клас със статичен метод DB::getDBInstance и други методи, които да ти променят параметрите на connection-a. Ама пак не разбирам какъв е смисъла в случая.
Аз не виждам проблем да имаш параметър в метода който си постнал.

В другата тема се спореше относно сетване на пропъртита на обекта през getter, което си е странно наистина, ама в случая аз не виждам проблем.
 
borovaka каза:
Можеш да си направиш и клас който да ти обслужва DB-то.
Примерно Singleton клас със статичен метод DB::getDBInstance и други методи, които да ти променят параметрите на connection-a. Ама пак не разбирам какъв е смисъла в случая.
Аз не виждам проблем да имаш параметър в метода който си постнал.

В другата тема се спореше относно сетване на пропъртита на обекта през getter, което си е странно наистина, ама в случая аз не виждам проблем.
То по принцип идеята ми е да се преминава от Mysqli на PDO и обратното. Реално прави се дефаутово викане на класът и после се работи с върнатият обект. Де да знам не бях сигурен дали добре съм се справил а и принципно няма какво толкова да се обслужва само ще направя една проверка в метода за инстанция на интерфейса и мисля, че ще съм супер.
 

Back
Горе