/** * @param $name * @return object */ protected static function _get($name) { Assert(static::$resources)->keyExists($name, "The object {$name} does not exist in the registry."); if (is_object(static::$resources[$name]) && static::$resources[$name] instanceof \Closure) { static::$resources[$name] = static::$resources[$name]->__invoke(); } return static::$resources[$name]; }
/** * @param bool $ignore * * @return $this */ public function ignoreErrors($ignore = true) { Assert($ignore)->boolean(); $this->ignoreErrors = $ignore; return $this; }
/** * @param string $cache * @returns CacheInterface * @throws \Exception */ public function getCache($cache = 'default') { Assert($this->caches)->keyExists($cache, "Could not load cache pool by name ({$cache})"); return $this->caches[$cache]; }
/** * @param null|int $ttl * @return null */ protected function _getTtl($ttl) { $ttl = !is_null($ttl) ? $ttl : $this->defaultTtl; Assert($ttl)->int()->range(1, 315360000); // Max 10 years.. return $ttl; }
/** * @param string $query * @param integer $limit * @param null|integer $offset * @return string */ public function setLimit($query, $limit = null, $offset = null) { Assert($query)->string()->notEmpty(); Assert($limit)->nullOr()->integer(); Assert($offset)->nullOr()->integer(); if ($offset) { $limit = is_null($limit) ? 1 : $limit; $limit = $limit + $offset; return "SELECT * FROM ({$query}) WHERE ROWNUM between {$offset} AND {$limit}"; } if ($limit) { return "SELECT * FROM ({$query}) WHERE ROWNUM <= {$limit}"; } return $query; }
<?php require_once __DIR__ . '/../../../../vendor/autoload.php'; use function Terah\Assert\Assert; use Assert as Beberlei; $assert = new Assert(''); Assert::that(''); Beberlei\that(''); echo "Benchmarking static Terah\\Assert"; $start = microtime(true); for ($i = 0; $i < 100000; $i++) { Assert::that(true)->true(); } $time = microtime(true) - $start; echo "Taken: {$time}" . PHP_EOL; echo "Benchmarking new Terah\\Assert"; $start = microtime(true); for ($i = 0; $i < 100000; $i++) { Assert(true)->true(); } $time = microtime(true) - $start; echo "Taken: {$time}" . PHP_EOL; echo "Benchmarking fluent Beberlei"; $start = microtime(true); for ($i = 0; $i < 100000; $i++) { Beberlei\that(true)->true(); } $time = microtime(true) - $start; echo "Taken: {$time}" . PHP_EOL;
/** * @param string $query * @param integer $limit * @param null|integer $offset * @return string */ public function setLimit($query, $limit = null, $offset = null) { Assert($query)->string()->notEmpty(); Assert($limit)->nullOr()->integer(); Assert($offset)->nullOr()->integer(); if ($limit) { $query .= " LIMIT {$limit}"; } if ($offset) { $query .= " OFFSET {$offset}"; } return $query; }
/** * @param string $field * @param mixed $value * @param bool|false $permissive * @return float|int|null|string */ protected function _fixType($field, $value, $permissive = false) { Assert($value)->nullOr()->scalar("var is type of " . gettype($value)); if (empty($this->_schema) || !array_key_exists($field, $this->_schema) && $permissive) { return $value; } $columns = $this->getColumns(false); Assert($columns)->keyExists($field, "The property {$field} does not exist."); $field_type = !empty($columns[$field]) ? $columns[$field] : null; if (is_null($value)) { return null; } // return on null, '' but not 0 if (!is_numeric($value) && empty($value)) { return null; } // Don't cast invalid values... only those that can be cast cleanly switch ($field_type) { case 'varchar': case 'text': case 'date': case 'datetime': case 'timestamp': return (string) $value; case 'int': case 'tinyint': return !is_numeric($value) ? $value : (int) $value; case 'decimal': return !is_numeric($value) ? $value : (double) $value; default: return $value; } }
/** * @param array $keys * @return array */ public function getLoggingValues($keys = []) { Assert($keys)->isArray(); $logables = $this->getFieldsByMetaGroup(self::LOGABLE); $logables = array_merge($logables, $keys); $logables = array_unique($logables); $data = []; foreach ($logables as $key) { $data[$key] = $this->get($key); } return $data; }
/** * @param string $name * @return AbstractPdo */ public function getConnection($name) { Assert($this->_connections)->keyExists($name, "The database connection {$name} has not been added."); if ($this->_connections[$name] instanceof \Closure) { $this->_connections[$name] = $this->_connections[$name]->__invoke(); } return $this->_connections[$name]; }
/** * @param $data */ public function append($data) { Assert($data)->isInstanceOf($this->entityType); //$this->data[] = $data; parent::append($data); }
/** * @param string $name * @return mixed * @throws \Terah\Assert\AssertionFailedException */ public function get($name) { Assert($this->_meta_data)->keyExists($name, "Invalid property ({$name}) sent to response meta"); return $this->_meta_data[$name]; }
/** * @return string * @throws \Exception */ public function toString() { $this->generate(); $tempFile = $this->getTempFullPath(); $fileData = file_get_contents($tempFile); Assert($fileData)->notEmpty("The generated pdf file is empty"); return $fileData; }