00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00018 final class MtRandomSource extends Singleton implements RandomSource
00019 {
00023 public static function me()
00024 {
00025 return Singleton::getInstance(__CLASS__);
00026 }
00027
00028 public function getBytes($numberOfBytes)
00029 {
00030 Assert::isPositiveInteger($numberOfBytes);
00031
00032 $bytes = null;
00033 for ($i = 0; $i < $numberOfBytes; $i += 4) {
00034 $bytes .= pack('L', mt_rand());
00035 }
00036
00037 return substr($bytes, 0, $numberOfBytes);
00038 }
00039 }
00040 ?>