diff options
| author | Patrick Seeger <pseeger@ccwn.org> | 2012-04-13 23:11:05 +0200 |
|---|---|---|
| committer | Patrick Seeger <pseeger@ccwn.org> | 2012-04-13 23:11:05 +0200 |
| commit | 341cc4dd9c53ffbfb863e026dd58549c1082c7a7 (patch) | |
| tree | 1bbbed20313bafb9b063b6b4d894fe580d8b000f /framework/cli/views/shell/model | |
Diffstat (limited to 'framework/cli/views/shell/model')
| -rw-r--r-- | framework/cli/views/shell/model/fixture.php | 25 | ||||
| -rw-r--r-- | framework/cli/views/shell/model/model.php | 113 | ||||
| -rw-r--r-- | framework/cli/views/shell/model/test.php | 21 |
3 files changed, 159 insertions, 0 deletions
diff --git a/framework/cli/views/shell/model/fixture.php b/framework/cli/views/shell/model/fixture.php new file mode 100644 index 0000000..a159585 --- /dev/null +++ b/framework/cli/views/shell/model/fixture.php @@ -0,0 +1,25 @@ +<?php +/** + * This is the template for generating the fixture file for a model class. + * The following variables are available in this template: + * - $table: the table schema + */ +?> +<?php echo "<?php\n"; ?> + +return array( + /* + 'sample1'=>array( +<?php foreach($table->columns as $name=>$column) { + if($table->sequenceName===null || $table->primaryKey!==$column->name) + echo "\t\t'$name' => '',\n"; +} ?> + ), + 'sample2'=>array( +<?php foreach($table->columns as $name=>$column) { + if($table->sequenceName===null || $table->primaryKey!==$column->name) + echo "\t\t'$name' => '',\n"; +} ?> + ), + */ +); diff --git a/framework/cli/views/shell/model/model.php b/framework/cli/views/shell/model/model.php new file mode 100644 index 0000000..b1137db --- /dev/null +++ b/framework/cli/views/shell/model/model.php @@ -0,0 +1,113 @@ +<?php +/** + * This is the template for generating a model class file. + * The following variables are available in this template: + * - $className: the class name + * - $tableName: the table name + * - $columns: a list of table column schema objects + * - $rules: a list of validation rules (string) + * - $labels: a list of labels (column name => label) + * - $relations: a list of relations (string) + */ +?> +<?php echo "<?php\n"; ?> + +/** + * This is the model class for table "<?php echo $tableName; ?>". + * + * The followings are the available columns in table '<?php echo $tableName; ?>': +<?php foreach($columns as $column): ?> + * @property <?php echo $column->type.' $'.$column->name."\n"; ?> +<?php endforeach; ?> + */ +class <?php echo $className; ?> extends CActiveRecord +{ + /** + * Returns the static model of the specified AR class. + * @return <?php echo $className; ?> the static model class + */ + public static function model($className=__CLASS__) + { + return parent::model($className); + } + + /** + * @return string the associated database table name + */ + public function tableName() + { + return '<?php echo $tableName; ?>'; + } + + /** + * @return array validation rules for model attributes. + */ + public function rules() + { + // NOTE: you should only define rules for those attributes that + // will receive user inputs. + return array( +<?php foreach($rules as $rule): ?> + <?php echo $rule.",\n"; ?> +<?php endforeach; ?> + // The following rule is used by search(). + // Please remove those attributes that should not be searched. + array('<?php echo implode(', ', array_keys($columns)); ?>', 'safe', 'on'=>'search'), + ); + } + + /** + * @return array relational rules. + */ + public function relations() + { + // NOTE: you may need to adjust the relation name and the related + // class name for the relations automatically generated below. + return array( +<?php foreach($relations as $name=>$relation): ?> + <?php echo "'$name' => $relation,\n"; ?> +<?php endforeach; ?> + ); + } + + /** + * @return array customized attribute labels (name=>label) + */ + public function attributeLabels() + { + return array( +<?php foreach($labels as $column=>$label): ?> + <?php echo "'$column' => '$label',\n"; ?> +<?php endforeach; ?> + ); + } + + /** + * Retrieves a list of models based on the current search/filter conditions. + * @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions. + */ + public function search() + { + // Warning: Please modify the following code to remove attributes that + // should not be searched. + + $criteria=new CDbCriteria; + +<?php +foreach($columns as $name=>$column) +{ + if($column->type==='string') + { + echo "\t\t\$criteria->compare('$name',\$this->$name,true);\n\n"; + } + else + { + echo "\t\t\$criteria->compare('$name',\$this->$name);\n\n"; + } +} +?> + return new CActiveDataProvider('<?php echo $className; ?>', array( + 'criteria'=>$criteria, + )); + } +}
\ No newline at end of file diff --git a/framework/cli/views/shell/model/test.php b/framework/cli/views/shell/model/test.php new file mode 100644 index 0000000..93aa17e --- /dev/null +++ b/framework/cli/views/shell/model/test.php @@ -0,0 +1,21 @@ +<?php +/** + * This is the template for generating the unit test for a model class. + * The following variables are available in this template: + * - $className: the class name + * - $fixtureName: the fixture name + */ +?> +<?php echo "<?php\n"; ?> + +class <?php echo $className; ?>Test extends CDbTestCase +{ + public $fixtures=array( + '<?php echo $fixtureName; ?>'=>'<?php echo $className; ?>', + ); + + public function testCreate() + { + + } +}
\ No newline at end of file |
