public function testClassName() { $this->assertEquals('MyClassName', StringFormat::className('myClassName')); $this->assertEquals('MyClassName', StringFormat::className('my-class-name')); $this->assertEquals('MyClassName', StringFormat::className('my Class name')); $this->assertEquals('MyClassName', StringFormat::className('my %^&* Class name')); $this->assertEquals('MyClassName', StringFormat::className('my____Class name')); $this->assertEquals('MyClassName', StringFormat::className('my/Class name')); }
/** * Throws UnexpectedValueException if the row class, either gleaned from Query::getTable() or * provided directly, does not exist. * Throws UnexpectedValueException if the above class does not have Model in its ancestry. * * @param Query $query * @param string $class = null */ public function __construct(Query $query, $class = null) { if ($class) { $this->class = trim($class); } else { $this->class = trim(StringFormat::className($query->getTable())); } if (!class_exists($this->class)) { throw new UnexpectedValueException(sprintf('Class "%s" does not exist.', $this->class)); } if (!is_a($this->class, 'Model', true)) { throw new UnexpectedValueException(sprintf('Class "%s" does not inherit from Model.', $this->class)); } $this->query = $query; }
/** * @param Query $q * @param int $limit * @param int $page * @param string $class_name */ function __construct(Query $q, $limit = null, $page = null, $class_name = null, $select_method_name = 'doSelect') { $this->setQuery($q); if ($class_name) { $this->setClass($class_name); } elseif (func_num_args() < 4 && ($table = $q->getTable()) && !$table instanceof Query) { $table_parts = explode('.', $table); $table_name = array_pop($table_parts); $this->setClass(StringFormat::className($table_name)); } if ($select_method_name) { $this->setMethod($select_method_name); } $this->setLimit($limit); $this->setPageNum($page); }
/** * @param string $table_name * @return string */ function getControllerName($table_name) { $controller_name = StringFormat::plural($table_name); return StringFormat::className($controller_name) . 'Controller'; }