Changeset 19968
- Timestamp:
- 07/07/09 00:34:57 (7 months ago)
- Files:
-
- branches/1.3/UPGRADE_TO_1_3 (modified) (1 diff)
- branches/1.3/lib/plugins/sfDoctrinePlugin/lib/generator/sfDoctrineFormFilterGenerator.class.php (modified) (1 diff)
- branches/1.3/lib/plugins/sfDoctrinePlugin/lib/generator/sfDoctrineFormGenerator.class.php (modified) (1 diff)
- branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/FormGeneratorTest.php (added)
- branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/config/doctrine/schema.yml (modified) (5 diffs)
- branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/data/sql/schema.sql (modified) (1 diff)
- branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/filter/doctrine/CamelCaseFormFilter.class.php (added)
- branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/filter/doctrine/FormGeneratorTest2FormFilter.class.php (added)
- branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/filter/doctrine/GroupPermissionFormFilter.class.php (deleted)
- branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/filter/doctrine/UserGroupFormFilter.class.php (deleted)
- branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/filter/doctrine/UserPermissionFormFilter.class.php (deleted)
- branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/form/doctrine/CamelCaseForm.class.php (added)
- branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/form/doctrine/FormGeneratorTestForm.class.php (added)
- branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/form/doctrine/GroupPermissionForm.class.php (deleted)
- branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/form/doctrine/UserGroupForm.class.php (deleted)
- branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/form/doctrine/UserPermissionForm.class.php (deleted)
- branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/model/doctrine/CamelCase.class.php (added)
- branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/model/doctrine/CamelCaseTable.class.php (added)
- branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/model/doctrine/FormGeneratorTest.class.php (added)
- branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/model/doctrine/FormGeneratorTest2.class.php (added)
- branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/model/doctrine/FormGeneratorTest2Table.class.php (added)
- branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/model/doctrine/FormGeneratorTestTable.class.php (added)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/1.3/UPGRADE_TO_1_3
r19960 r19968 282 282 Doctrine 1.2 version. You can read about what is new in Doctrine 1.2 283 283 [here](http://www.doctrine-project.org/upgrade/1_2). 284 285 ### Generating Form Classes 286 287 It is now possible to specify additional options for symfony in your Doctrine YAML 288 schema files. We've added some options to disable the generation of form and filter 289 classes. 290 291 For example in a typical many to many reference model, you don't need any form 292 or filter form classes generated. So you can now do the following. 293 294 UserGroup: 295 options: 296 symfony: 297 form: false 298 filter: false 299 columns: 300 user_id: 301 type: integer 302 primary: true 303 group_id: 304 type: integer 305 primary: true branches/1.3/lib/plugins/sfDoctrinePlugin/lib/generator/sfDoctrineFormFilterGenerator.class.php
r14200 r19968 332 332 return $php; 333 333 } 334 335 /** 336 * Filter out models that have disabled generation of form classes 337 * 338 * @return array $models Array of models to generate forms for 339 */ 340 protected function filterModels($models) 341 { 342 foreach ($models as $key => $model) 343 { 344 $table = Doctrine::getTable($model); 345 $symfonyOptions = $table->getOption('symfony'); 346 347 if (isset($symfonyOptions['filter']) && !$symfonyOptions['filter']) 348 { 349 unset($models[$key]); 350 } 351 } 352 353 return $models; 354 } 334 355 } branches/1.3/lib/plugins/sfDoctrinePlugin/lib/generator/sfDoctrineFormGenerator.class.php
r19274 r19968 603 603 $models = Doctrine::getLoadedModels(); 604 604 $models = Doctrine::initializeModels($models); 605 $this->models = Doctrine::filterInvalidModels($models); 605 $models = Doctrine::filterInvalidModels($models); 606 $this->models = $this->filterModels($models); 607 606 608 return $this->models; 609 } 610 611 /** 612 * Filter out models that have disabled generation of form classes 613 * 614 * @return array $models Array of models to generate forms for 615 */ 616 protected function filterModels($models) 617 { 618 foreach ($models as $key => $model) 619 { 620 $table = Doctrine::getTable($model); 621 $symfonyOptions = $table->getOption('symfony'); 622 623 if (isset($symfonyOptions['form']) && !$symfonyOptions['form']) 624 { 625 unset($models[$key]); 626 } 627 } 628 629 return $models; 607 630 } 608 631 branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/config/doctrine/schema.yml
r19274 r19968 71 71 type: unique 72 72 73 74 73 Profile: 75 74 columns: … … 96 95 97 96 UserGroup: 97 options: 98 symfony: 99 form: false 100 filter: false 98 101 columns: 99 102 user_id: … … 105 108 106 109 UserPermission: 110 options: 111 symfony: 112 form: false 113 filter: false 107 114 columns: 108 115 user_id: … … 114 121 115 122 GroupPermission: 123 options: 124 symfony: 125 form: false 126 filter: false 116 127 columns: 117 128 group_id: … … 121 132 type: integer 122 133 primary: true 134 135 FormGeneratorTest: 136 options: 137 symfony: 138 form: true 139 filter: false 140 columns: 141 name: string(255) 142 143 FormGeneratorTest2: 144 options: 145 symfony: 146 form: false 147 filter: true 148 columns: 149 name: string(255) branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/data/sql/schema.sql
r19274 r19968 2 2 CREATE TABLE author (id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(255)); 3 3 CREATE TABLE camel_case (id INTEGER PRIMARY KEY AUTOINCREMENT, testcamelcase VARCHAR(255)); 4 CREATE TABLE form_generator_test (id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(255)); 5 CREATE TABLE form_generator_test2 (id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(255)); 4 6 CREATE TABLE groups (id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(255)); 5 7 CREATE TABLE group_permission (group_id INTEGER, permission_id INTEGER, PRIMARY KEY(group_id, permission_id));

