Jump to content
php.lv forumi

Recommended Posts

  • Replies 33
  • Created
  • Last Reply

Top Posters In This Topic

Posted (edited)

<?php
class MySQL {
function whatever() {
	 $acl = new ACL();
	 $acl->authorizeMe();
}
}

 

Apmēram šādi? Vai arī - kur īsti ir problēma?

 

No wikipedia:

The Scope Resolution Operator (::) in PHP is officially called Paamayim Nekudotayim (IPA: [paʔamajim nəkudotajim]). It means 'twice colon' or 'double colon' in Hebrew.

Edited by black
Posted (edited)

par to "paamayim-nekudotayim" es arī vienreiz jau sabrīnijos :).

 

Interesanti, kāpēc izstrādātāji šitādu nosaukumu izdomājuši iedot.

Edited by andrisp
Posted

saakumaa uztaisi mysql klases obektu, ko padod jaunajai klasei kaa parametru vai global variablu.

var arii jaunajai klasei mysql noraaditi kaa extends, bet tad vinjsh taisiis vairaakas konekcijas.

Posted (edited)

Nu, vispār jau gadījumā ar db klasi ir jāpielieto singletone paterns. Un atrisinās visas problēmas :)

class MysqlClass {
private static $instance = NULL;

static function instance() {
	// paarbaudam, vai ir izveidots klases eksemplaars
	if(empty(self::$instance)) {
		// ja nav, izveidojam
		self::$instance = new MysqlClass();
	}
	return self::$instance;
}
private function __construct() {
	// te konecteejamies ar db
}
}
//--------------------
class Authenticate {
function whatever() {
	 $db = MysqlClass::instance();
	 // te daram visu, ko vajag ar db klassi
}
}

Edited by john.brown
Posted

labvakar, piem. var ari ta

 

class Db
{
 public function connect()
 {
....
 }
}


class Main{
 public function __construct()
 {
global $DB;
$DB->connect()
 }
}

$DB = new Db();
$M = new Main();

Posted

dimitry: Protams, ka šāds variants strādātu. Bet šajā variantā ir vairāk iespēju kļūdīties - piemēram aizmirst inicializēt $DB mainīgo, inicializēt to vairākkārt, utt.

Posted

Nu ja pamanās DB klasi inicializēt vairākkārtīgi, tad jau visa projekta arhitektūra ir kaut kāda stipri kreisa...


×
×
  • Create New...