Bunun yerine bir sınıfta "statik" olarak her işlevi ilan, ben bir sınıf kendisi "statik" yapabilirsiniz herhangi bir yolu var mı?
Ben gitmek için en iyi yolu, özel bir yapıcı aracılığıyla nesne örnekleme önlemek ve açıkça statik olarak tüm işaretleme yöntemleri olduğunu söyleyebilirim. Eğer statik (PHP mevcut değil statik sınıfların sonucu olan) gibi tüm yöntemleri işaretlemek için dikkatli olmak zorunda olmasına rağmen, Singleton yaklaşımı üzerinde bu yöntemin yararı statik yöntemlerinin statik olmayan muadillerine göre daha verimli olmasıdır. Muhtemelen de sınıf olarak en statik sınıflar zaten uzatılabilir tasarlanmıştır (ve bunu yapmak için iyi bir uygulama) değildir, son olarak işaretlenmiş istiyorum.
Bir örnek bu gibi bir şey olacaktır:
final class PseudoStatic {
/**
* Prevent object instantiation
*/
private function __construct() {}
static public function method1() {
...
}
static public function method2() {
...
}
...
}
Ayrıca, Singleton pattern is now considered a bad practice by some.
PHP değil - static
statik olmak isteyen o kadar her üye işaretlemeniz gerekir. Için bilgi için the PHP manual bakın.
Ya da ne gerçekten ulaşmak istiyorum sadece, bir sınıf örneği var o yapıcı özel yapmak ve statik örneği () yöntemi ile temin için ise. Örneğin:
class PseudoStatic {
static private $instance;
private function __construct() {}
static public function instance() {
if (!self::$instance) {
self$instance = new self;
}
return self::$instance;
}
}
$instance = new PseudoStatic(); // error!
$instance = PseudoStatic::instance(); // force one instance only