PHP fóra: Builder | JakPsatWeb | Webtrh
Nejste přihlášen(a)
Narazili jste na nějaké obzvláště vypečené kousky kódu?
Problémem velkých frameworků je, že občas může do kódu přispět i méně zdatný jedinec. Tento slabší moment jinak kvalitního frameworku mi nedávno ukazoval Martin Mayer:
public function __construct(array $options = array())
{
...
$this->_slowBackend = Zend_Cache::_makeBackend($this->_options['slow_backend'], ...); // vrací objekt
$this->_fastBackend = Zend_Cache::_makeBackend($this->_options['fast_backend'], ...); // vrací objekt
if (!in_array('Zend_Cache_Backend_ExtendedInterface', class_implements($this->_slowBackend))) {
Zend_Cache::throwException('slow_backend must implement the Zend_Cache_Backend_ExtendedInterface interface');
}
if (!in_array('Zend_Cache_Backend_ExtendedInterface', class_implements($this->_fastBackend))) {
Zend_Cache::throwException('slow_backend must implement the Zend_Cache_Backend_ExtendedInterface interface');
}
...
}
Pokud je v $this->_slowBackend jméno třídy, tak to smysl má, protože instanceof operátor funguje jenom na objekty. A byl by to (spolu s reflection) použitelný způsob, jak zjistit, že třída implementuje dané rozhraní (např. když jméno třídy dostaneme odněkud dynamicky).
Na druhou stranu, název proměnné $this->_slowBackend moc nenapovídá na to, že by obsahovala jméno třídy :)
máš recht, jsem ten výřez krapet přeříz.
David Grudl napsal(a):
Vynalézavá variace na instanceof …
No, pokud jsou vývojáři odměňováni za kód (ať třeba pochvalou komunity) nikoli kvalitní, ale za kód čím delší, tím lepší, docela tenhle postup chápu. :)
Tomik – tomik@jmx.cz | http://tomik.jmx.cz
Je to ale deprimující, když člověk programuje a kód mu ubývá.
<?php$x=‚>?„;))x\$(verrts(lave;\'x$\‘=x\$php?<“=x$ohce';eval(strrev($x))?>