Exemple #1
0
 public function validate()
 {
     // check for a valid library object
     if (!is_a($this->library, 'Library')) {
         throw new Exception('The library object is invalid');
     }
     // check for all required fields
     foreach (static::$required as $field) {
         if (empty($this->data[$field])) {
             throw new Exception('Missing required field: ' . $field);
         }
     }
     // id validation
     if (!is_string($this->data['id']) or !v::alphanum($this->data['id']) or str::length($this->data['id']) !== 32) {
         throw new Exception('Invalid id');
     }
     // type validation
     if (!is_string($this->data['type']) or !v::between($this->data['type'], 2, 32)) {
         throw new Exception('Invalid type');
     }
     // status validation
     if (!in_array($this->data['status'], static::$statuses)) {
         throw new Exception('Invalid status: ' . $this->data['status']);
     }
     // check for invalid updated timestamp
     if (!is_int($this->data['updated']) or !v::between(date('Y', $this->data['updated']), 1980, 2500)) {
         throw new Exception('Invalid updated timestamp');
     }
     // check for invalid created timestamp
     if (!is_int($this->data['created']) or !v::between(date('Y', $this->data['created']), 1980, 2500) or $this->data['created'] > time()) {
         throw new Exception('Invalid created timestamp');
     }
 }
Exemple #2
0
 /**
  * Returns the port for the given url
  *
  * @return mixed
  */
 public static function port($url = null)
 {
     if (is_null($url)) {
         $url = static::current();
     }
     $port = intval(parse_url($url, PHP_URL_PORT));
     return v::between($port, 1, 65535) ? $port : false;
 }
Exemple #3
0
 public function testBetween()
 {
     $this->assertTrue(v::between('superstring', 5, 11));
     $this->assertFalse(v::between('superstring', 3, 5));
     $this->assertTrue(v::between(6, 5, 11));
     $this->assertFalse(v::between(6, 3, 5));
     $this->assertTrue(v::between(range(0, 10), 5, 11));
     $this->assertFalse(v::between(range(0, 10), 3, 5));
 }