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'); } }
/** * 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; }
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)); }