Aşağıdaki şekilde eklentileri dinamik yükleme uygulanmaktadır:
function processPlugin( $plgFile, $db ) {
require_once( $plgFile );
$plgin = new PlginImpl();
$plgin->setDb($db);
$ret = $plgin->process();
return $ret;
}
Her eklenti çalışıyor PlginImpl adında bir sınıfı tanımlar. Ama process() dönüş değeri içinde içinde belirtilen başka eklentileri aramak mümkün olmalıdır. Yukarıda belirtilen aynı yöntemi çağırmak, ancak başarısız olur:
Fatal error: Cannot redeclare class PlginImpl in ..
Her eklenti bir sınıf olduğuna dikkat edin, yani:
class PlginImpl extends Plugin implements PluginInterface
Plugin bazı kullanışlı işlevler sunarken PluginInterface tanımlar yani process().
Ben tüm eklentileri PlginImpl adlandırılmış olması dolayısıyla benim soru, soruna neden olduğunu varsayalım: require_once ile yükledikten sonra (PlginImpl) bir sınıf boşaltmak için bir yol var? Ya da ben takip etmelidir tamamen farklı bir yaklaşım var mı?
EDIT I tried without succeeding the following things:
- unset
$plginsonra,process() - bunun içinde
processPlugin(), neprocessyöntemi içinde de çalışmıyor -__destruct()çağrı
Çok, çok teşekkürler!