예제 #1
0
 public function testClassifySelf()
 {
     $this->assertEqual(TipyInflector::classify('Welcome'), 'Welcome');
     $this->assertEqual(TipyInflector::classify('WelcomeHome'), 'WelcomeHome');
     $this->assertEqual(TipyInflector::classify('123welcome'), '123welcome');
     $this->assertEqual(TipyInflector::classify('Project'), 'Project');
     $this->assertEqual(TipyInflector::classify('BigProjects'), 'BigProject');
     $this->assertEqual(TipyInflector::classify('Mouse'), 'Mouse');
 }
예제 #2
0
파일: TipyModel.php 프로젝트: smetana/tipy
 /**
  * Check and fill missing association classes
  * Recognize class names from association names
  * This allows to define assiciations by specifying
  * its name only
  * <code>
  *  $hasMany = ['comments', 'posts'];
  * </cde>
  */
 private function checkAssociationClasses()
 {
     foreach (['hasMany', 'hasOne', 'belongsTo', 'hasManyThrough'] as $assocType) {
         if (!$this->{$assocType}) {
             continue;
         }
         if (!is_array($this->{$assocType})) {
             throw new TipyModelException("Association definition should be an Array");
         }
         $assocArray = $this->{$assocType};
         foreach ($assocArray as $name => $options) {
             // If $name is integer then this is assoc specified without options
             // Make it array for future usage
             if (is_int($name)) {
                 // Transform ['post'] array to ['post' => []]
                 unset($assocArray[$name]);
                 $name = $options;
                 $assocArray[$name] = [];
             }
             if (!array_key_exists('class', $assocArray[$name])) {
                 $assocArray[$name]['class'] = TipyInflector::classify($name);
             }
         }
         $this->{$assocType} = $assocArray;
     }
 }