Beispiel #1
0
 /**
  * Discover subclass properties to map. Add them to Bitfield.
  * 
  * @return void     
  * @access protected
  */
 protected function setupBitfield()
 {
     $this->bitfield = new Bitfield();
     $c = new ReflectionClass($this);
     $props = $c->getProperties(ReflectionProperty::IS_PROTECTED);
     foreach ((array) $props as $p) {
         if ($p->class == __CLASS__) {
             continue;
         }
         $class_name = get_class($this);
         $constant_name = strtoupper($class_name) . '_' . strtoupper($p->name);
         $this->bitfield->addOption($constant_name, $unique_check = false);
         $this->mapped[$p->name] = $constant_name;
     }
 }
Beispiel #2
0
            printf("\n");
        }
        fclose($fp);
        return;
    }
    throw new Exception("Failed to open example.data");
}
echo "Writing random data...\n";
generate_data(1000);
echo "Reading entries...\n";
read_data_entries();
echo "Done.\n";
exit;
// Example of how to use Bitfield directly:
$field = new Bitfield();
$field->addOption('USER_IS_ADMIN');
$field->addOption('USER_IS_BANNED');
$field->addOption('USER_IS_ADVERTISER');
$field->addOption('PREF_AUTOLOGIN');
$field->addOption('PREF_SHOW_ADS');
$field->setBitfield(USER_IS_ADMIN | PREF_AUTOLOGIN | PREF_SHOW_ADS);
if ($field->isEnabled(USER_IS_ADMIN)) {
    echo "Hello sir!\n";
    if ($field->isEnabled(PREF_AUTOLOGIN)) {
        echo "Autologin enabled.\n";
    }
    if ($field->isEnabled(USER_IS_ADVERTISER)) {
        echo "Gimme some offers.\n";
    }
} else {
    echo "Meh, what do you want?\n";