예제 #1
0
 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'));
 }
예제 #2
0
 /**
  * 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;
 }
예제 #3
0
 /**
  * @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);
 }
예제 #4
0
 /**
  * @param string $table_name
  * @return string
  */
 function getControllerName($table_name)
 {
     $controller_name = StringFormat::plural($table_name);
     return StringFormat::className($controller_name) . 'Controller';
 }