ahoj .. vytvořil jsem si třídy2 ... jedna DATABASE a druhá MSQLI ... DATABASE bere v construktoru login, heslo atd .. a vytvářáí novou třídu MYSQLI kterou pak vrátí ( v konstruktoru)
DATABASE constructor
__construct(udaje)
{
return new MYSQLI(udaje);
}
problem je vtom že když zavolam napr $a= new DATABASE($data)... $a->MetodaZMYSQLI(); ...tak mi to zahlasi "call undefined method" ... nevite co stim .. moc díky za všechny rady ...
Fórum › PHP
Factory
To janek : ... prave jsem zjistil ze i v PHP je __construct() jenom procedura ...takze nevraci nic ...
jde nějak docílit efektu abych si vytvoril tridu A .. uložil do proměné třídy B ..a pak zavolal B->metodaA(); ??
prostě potřebuji vytvořit třídu .. např A .... pak vytvořit třídu např B ... třída A .. jenom přichystá "prostředí" pro B... a chci třídu B uložit do A tak aby když zavolám A->MetodaYtridyB(); .... abz se mi to zovolalo správně .... prostě abych pomocí A mohl volat metody z B....
si spis nepochopil princip..
konstruktor vraci instanci tridy.. je tedy nesmysl mu rvat return..
to co vytvaris ma zustat uvnitr te instance..
takze si udelas promennou $dbcon
a pak v konstruktoru ji inicializujes: $this->dbcon = new MYSQLI(udaje);
do B pak pomoci konstruktoru muzes ten objekt vytvoreny z A predat a pak s nim pracovat .. jen pomoci promenne uvnitr B
ale stejne nejak nechapu smysl toho vseho.. proc to sakra neudelas v jednom?
Pokud ti mohu doporucit tak tridy pro db si napsal snad kazdy avsak hodne malo jich bylo dokonalych natolik aby to lidi zverejnili avsak tu jsou a nejlepsi na tom je ze nejsou ode me :) http://dibiphp.com/cs/ (velmi jednoducha) nebo treba http://framework.zend.com/manual/en/zend.db.html
Třída pracující s db se dá řešit třeba podle vzoru singleton.
ve třídě pracující s db stačí mít tuto funkci:
class Database
{
static function getInstance()
{
if(self::$instance == NULL) {
self::$instance = new Database();
}
return self::$instance;
}
function dotaz(){
//... zpracovani dotazu
}
}
a kdekoliv v kódu pak přistupuješ k metodám a hodnotám objektu Database pomocí tohoto:
Database::getInstance()->dotaz();
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Simple factory method — založil vigum
Moderátoři diskuze