Jacek Kowalski
2013-05-17 6cba3f7a45bef8753536a47c1d282dcdcdfde68f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php
interface ibd_module {
    //static $name;
    function szukaj_info($tytul=NULL, $autor=NULL, $wydawnictwo=NULL);
    function szukaj_ISBN($ISBN);
    function szukaj_ISSN($ISSN);
}
 
class ibd implements Countable {
    static $providers = array(
        'ibd_BN',
    );
    
    static $timelimit = 25;
    
    function __call($function, $args) {
        $stop = time() + self::$timelimit;
        $return = array();
        
        foreach(self::$providers as $provider) {
            if(time() >= $stop) break;
            
            $name = new $provider;
            if(!method_exists($name, $function)) {
                continue;
            }
            
            $results = call_user_func_array(array($name, $function), $args);
            
            if(!empty($results)) {
                $return[$name->name] = $results;
            }
        }
        
        return $return;
    }
    
    function count() {
        return count(self::$providers);
    }
}
?>