1111
1212namespace Propel \Bundle \PropelBundle \Form ;
1313
14+ use Propel \Bundle \PropelBundle \Form \Type \ModelType ;
15+ use Symfony \Component \Form \Extension \Core \Type \CheckboxType ;
16+ use Symfony \Component \Form \Extension \Core \Type \ChoiceType ;
17+ use Symfony \Component \Form \Extension \Core \Type \DateTimeType ;
18+ use Symfony \Component \Form \Extension \Core \Type \DateType ;
19+ use Symfony \Component \Form \Extension \Core \Type \IntegerType ;
20+ use Symfony \Component \Form \Extension \Core \Type \NumberType ;
21+ use Symfony \Component \Form \Extension \Core \Type \TextareaType ;
22+ use Symfony \Component \Form \Extension \Core \Type \TextType ;
23+ use Symfony \Component \Form \Extension \Core \Type \TimeType ;
1424use Symfony \Component \Form \FormTypeGuesserInterface ;
1525use Symfony \Component \Form \Guess \Guess ;
1626use Symfony \Component \Form \Guess \TypeGuess ;
@@ -31,27 +41,27 @@ class PropelTypeGuesser implements FormTypeGuesserInterface
3141 public function guessType ($ class , $ property )
3242 {
3343 if (!$ table = $ this ->getTable ($ class )) {
34- return new TypeGuess (' text ' , array (), Guess::LOW_CONFIDENCE );
44+ return new TypeGuess (TextType::class , array (), Guess::LOW_CONFIDENCE );
3545 }
3646
3747 foreach ($ table ->getRelations () as $ relation ) {
3848 if ($ relation ->getType () === \RelationMap::MANY_TO_ONE ) {
3949 if (strtolower ($ property ) === strtolower ($ relation ->getName ())) {
40- return new TypeGuess (' model ' , array (
50+ return new TypeGuess (ModelType::class , array (
4151 'class ' => $ relation ->getForeignTable ()->getClassName (),
4252 'multiple ' => false ,
4353 ), Guess::HIGH_CONFIDENCE );
4454 }
4555 } elseif ($ relation ->getType () === \RelationMap::ONE_TO_MANY ) {
4656 if (strtolower ($ property ) === strtolower ($ relation ->getPluralName ())) {
47- return new TypeGuess (' model ' , array (
57+ return new TypeGuess (ModelType::class , array (
4858 'class ' => $ relation ->getForeignTable ()->getClassName (),
4959 'multiple ' => true ,
5060 ), Guess::HIGH_CONFIDENCE );
5161 }
5262 } elseif ($ relation ->getType () === \RelationMap::MANY_TO_MANY ) {
5363 if (strtolower ($ property ) == strtolower ($ relation ->getPluralName ())) {
54- return new TypeGuess (' model ' , array (
64+ return new TypeGuess (ModelType::class , array (
5565 'class ' => $ relation ->getLocalTable ()->getClassName (),
5666 'multiple ' => true ,
5767 ), Guess::HIGH_CONFIDENCE );
@@ -60,50 +70,50 @@ public function guessType($class, $property)
6070 }
6171
6272 if (!$ column = $ this ->getColumn ($ class , $ property )) {
63- return new TypeGuess (' text ' , array (), Guess::LOW_CONFIDENCE );
73+ return new TypeGuess (TextType::class , array (), Guess::LOW_CONFIDENCE );
6474 }
6575
6676 switch ($ column ->getType ()) {
6777 case \PropelColumnTypes::BOOLEAN :
6878 case \PropelColumnTypes::BOOLEAN_EMU :
69- return new TypeGuess (' checkbox ' , array (), Guess::HIGH_CONFIDENCE );
79+ return new TypeGuess (CheckboxType::class , array (), Guess::HIGH_CONFIDENCE );
7080 case \PropelColumnTypes::TIMESTAMP :
7181 case \PropelColumnTypes::BU_TIMESTAMP :
72- return new TypeGuess (' datetime ' , array (), Guess::HIGH_CONFIDENCE );
82+ return new TypeGuess (DateTimeType::class , array (), Guess::HIGH_CONFIDENCE );
7383 case \PropelColumnTypes::DATE :
7484 case \PropelColumnTypes::BU_DATE :
75- return new TypeGuess (' date ' , array (), Guess::HIGH_CONFIDENCE );
85+ return new TypeGuess (DateType::class , array (), Guess::HIGH_CONFIDENCE );
7686 case \PropelColumnTypes::TIME :
77- return new TypeGuess (' time ' , array (), Guess::HIGH_CONFIDENCE );
87+ return new TypeGuess (TimeType::class , array (), Guess::HIGH_CONFIDENCE );
7888 case \PropelColumnTypes::FLOAT :
7989 case \PropelColumnTypes::REAL :
8090 case \PropelColumnTypes::DOUBLE :
8191 case \PropelColumnTypes::DECIMAL :
82- return new TypeGuess (' number ' , array (), Guess::MEDIUM_CONFIDENCE );
92+ return new TypeGuess (NumberType::class , array (), Guess::MEDIUM_CONFIDENCE );
8393 case \PropelColumnTypes::TINYINT :
8494 case \PropelColumnTypes::SMALLINT :
8595 case \PropelColumnTypes::INTEGER :
8696 case \PropelColumnTypes::BIGINT :
8797 case \PropelColumnTypes::NUMERIC :
88- return new TypeGuess (' integer ' , array (), Guess::MEDIUM_CONFIDENCE );
98+ return new TypeGuess (IntegerType::class , array (), Guess::MEDIUM_CONFIDENCE );
8999 case \PropelColumnTypes::ENUM :
90100 case \PropelColumnTypes::CHAR :
91101 if ($ column ->getValueSet ()) {
92102 //check if this is mysql enum
93103 $ choices = $ column ->getValueSet ();
94104 $ labels = array_map ('ucfirst ' , $ choices );
95105
96- return new TypeGuess (' choice ' , array ('choices ' => array_combine ($ choices , $ labels )), Guess::MEDIUM_CONFIDENCE );
106+ return new TypeGuess (ChoiceType::class , array ('choices ' => array_combine ($ choices , $ labels )), Guess::MEDIUM_CONFIDENCE );
97107 }
98108 case \PropelColumnTypes::VARCHAR :
99- return new TypeGuess (' text ' , array (), Guess::MEDIUM_CONFIDENCE );
109+ return new TypeGuess (TextType::class , array (), Guess::MEDIUM_CONFIDENCE );
100110 case \PropelColumnTypes::LONGVARCHAR :
101111 case \PropelColumnTypes::BLOB :
102112 case \PropelColumnTypes::CLOB :
103113 case \PropelColumnTypes::CLOB_EMU :
104- return new TypeGuess (' textarea ' , array (), Guess::MEDIUM_CONFIDENCE );
114+ return new TypeGuess (TextareaType::class , array (), Guess::MEDIUM_CONFIDENCE );
105115 default :
106- return new TypeGuess (' text ' , array (), Guess::LOW_CONFIDENCE );
116+ return new TypeGuess (TextType::class , array (), Guess::LOW_CONFIDENCE );
107117 }
108118 }
109119
0 commit comments