diff --git a/src/Symfony/Bridge/Propel1/DataCollector/PropelDataCollector.php b/src/Symfony/Bridge/Propel1/DataCollector/PropelDataCollector.php index 644705f05c..bbb15fb9a0 100644 --- a/src/Symfony/Bridge/Propel1/DataCollector/PropelDataCollector.php +++ b/src/Symfony/Bridge/Propel1/DataCollector/PropelDataCollector.php @@ -63,7 +63,7 @@ class PropelDataCollector extends DataCollector /** * Returns the collector name. * - * @return string The collector name. + * @return string The collector name. */ public function getName() { @@ -73,7 +73,7 @@ class PropelDataCollector extends DataCollector /** * Returns queries. * - * @return array Queries + * @return array Queries */ public function getQueries() { @@ -83,7 +83,7 @@ class PropelDataCollector extends DataCollector /** * Returns the query count. * - * @return int The query count + * @return int The query count */ public function getQueryCount() { @@ -93,7 +93,7 @@ class PropelDataCollector extends DataCollector /** * Returns the total time of queries. * - * @return float The total time of queries + * @return float The total time of queries */ public function getTime() { @@ -108,7 +108,7 @@ class PropelDataCollector extends DataCollector /** * Creates an array of Build objects. * - * @return array An array of Build objects + * @return array An array of Build objects */ private function buildQueries() { @@ -138,7 +138,7 @@ class PropelDataCollector extends DataCollector /** * Count queries. * - * @return int The number of queries. + * @return int The number of queries. */ private function countQueries() { diff --git a/src/Symfony/Bridge/Propel1/Form/ChoiceList/ModelChoiceList.php b/src/Symfony/Bridge/Propel1/Form/ChoiceList/ModelChoiceList.php index 54fe224d31..ed46134c52 100644 --- a/src/Symfony/Bridge/Propel1/Form/ChoiceList/ModelChoiceList.php +++ b/src/Symfony/Bridge/Propel1/Form/ChoiceList/ModelChoiceList.php @@ -45,6 +45,13 @@ class ModelChoiceList extends ObjectChoiceList */ private $loaded = false; + /** + * Whether to use the identifier for index generation + * + * @var Boolean + */ + private $identifierAsIndex = false; + /** * @param string $class * @param string $labelPath @@ -69,6 +76,10 @@ class ModelChoiceList extends ObjectChoiceList $choices = array(); } + if (1 === count($this->identifier) && $this->isInteger(current($this->identifier))) { + $this->identifierAsIndex = true; + } + parent::__construct($choices, $labelPath, array(), $groupPath); } @@ -224,7 +235,7 @@ class ModelChoiceList extends ObjectChoiceList // know that the IDs are used as indices // Attention: This optimization does not check choices for existence - if (1 === count($this->identifier)) { + if ($this->identifierAsIndex) { $indices = array(); foreach ($models as $model) { @@ -259,7 +270,7 @@ class ModelChoiceList extends ObjectChoiceList // know that the IDs are used as indices and values // Attention: This optimization does not check values for existence - if (1 === count($this->identifier)) { + if ($this->identifierAsIndex) { return $this->fixIndices($values); } @@ -283,7 +294,7 @@ class ModelChoiceList extends ObjectChoiceList */ protected function createIndex($model) { - if (1 === count($this->identifier)) { + if ($this->identifierAsIndex) { return current($this->getIdentifierValues($model)); } @@ -336,7 +347,8 @@ class ModelChoiceList extends ObjectChoiceList * exception is thrown. * * @param object $model The model for which to get the identifier - * @throws FormException If the model does not exist + * + * @throws FormException If the model does not exist */ private function getIdentifierValues($model) { @@ -351,4 +363,16 @@ class ModelChoiceList extends ObjectChoiceList return $model->getPrimaryKeys(); } + + /** + * Whether this column in an integer + * + * @param ColumnMap $column + * + * @return boolean + */ + private function isInteger(\ColumnMap $column) + { + return $column->getPdoType() === \PDO::PARAM_INT; + } } diff --git a/src/Symfony/Bridge/Propel1/Form/EventListener/TranslationCollectionFormListener.php b/src/Symfony/Bridge/Propel1/Form/EventListener/TranslationCollectionFormListener.php index 3e07518d0c..ae39700736 100644 --- a/src/Symfony/Bridge/Propel1/Form/EventListener/TranslationCollectionFormListener.php +++ b/src/Symfony/Bridge/Propel1/Form/EventListener/TranslationCollectionFormListener.php @@ -89,7 +89,7 @@ class TranslationCollectionFormListener implements EventSubscriberInterface break; } } - if(!$foundData) { + if (!$foundData) { throw new UnexpectedTypeException($rootData, 'Propel i18n object'); } diff --git a/src/Symfony/Bridge/Propel1/Logger/PropelLogger.php b/src/Symfony/Bridge/Propel1/Logger/PropelLogger.php index 8e38f2418e..1fd7dedf90 100644 --- a/src/Symfony/Bridge/Propel1/Logger/PropelLogger.php +++ b/src/Symfony/Bridge/Propel1/Logger/PropelLogger.php @@ -161,7 +161,7 @@ class PropelLogger /** * Returns queries. * - * @return array Queries + * @return array Queries */ public function getQueries() { diff --git a/src/Symfony/Bridge/Propel1/Tests/Fixtures/ItemQuery.php b/src/Symfony/Bridge/Propel1/Tests/Fixtures/ItemQuery.php index 75d2a4f731..fe2d03e05f 100644 --- a/src/Symfony/Bridge/Propel1/Tests/Fixtures/ItemQuery.php +++ b/src/Symfony/Bridge/Propel1/Tests/Fixtures/ItemQuery.php @@ -31,7 +31,10 @@ class ItemQuery public function getPrimaryKeys() { - return array('id'); + $cm = new \ColumnMap('id', new \TableMap()); + $cm->setType('INTEGER'); + + return array('id' => $cm); } /** diff --git a/src/Symfony/Bridge/Propel1/Tests/Fixtures/ReadOnlyItemQuery.php b/src/Symfony/Bridge/Propel1/Tests/Fixtures/ReadOnlyItemQuery.php index 8c9677f33d..0e77c26fcf 100644 --- a/src/Symfony/Bridge/Propel1/Tests/Fixtures/ReadOnlyItemQuery.php +++ b/src/Symfony/Bridge/Propel1/Tests/Fixtures/ReadOnlyItemQuery.php @@ -22,6 +22,9 @@ class ReadOnlyItemQuery public function getPrimaryKeys() { - return array('id'); + $cm = new \ColumnMap('id', new \TableMap()); + $cm->setType('INTEGER'); + + return array('id' => $cm); } } diff --git a/src/Symfony/Bridge/Propel1/Tests/Fixtures/TranslatableItem.php b/src/Symfony/Bridge/Propel1/Tests/Fixtures/TranslatableItem.php index 95ac0e1526..c69fe45299 100644 --- a/src/Symfony/Bridge/Propel1/Tests/Fixtures/TranslatableItem.php +++ b/src/Symfony/Bridge/Propel1/Tests/Fixtures/TranslatableItem.php @@ -112,8 +112,7 @@ class TranslatableItem implements \Persistent public function addTranslatableItemI18n(TranslatableItemI18n $i) { - if(!in_array($i, $this->currentTranslations)) - { + if (!in_array($i, $this->currentTranslations)) { $this->currentTranslations[$i->getLocale()] = $i; $i->setItem($this); } diff --git a/src/Symfony/Bridge/Propel1/Tests/Fixtures/TranslatableItemI18n.php b/src/Symfony/Bridge/Propel1/Tests/Fixtures/TranslatableItemI18n.php index c9eb690a43..1253b26c26 100644 --- a/src/Symfony/Bridge/Propel1/Tests/Fixtures/TranslatableItemI18n.php +++ b/src/Symfony/Bridge/Propel1/Tests/Fixtures/TranslatableItemI18n.php @@ -13,8 +13,8 @@ namespace Symfony\Bridge\Propel1\Tests\Fixtures; use PropelPDO; -class TranslatableItemI18n implements \Persistent { - +class TranslatableItemI18n implements \Persistent +{ private $id; private $locale; @@ -100,7 +100,6 @@ class TranslatableItemI18n implements \Persistent { public function getLocale() { - return $this->locale; } @@ -122,7 +121,6 @@ class TranslatableItemI18n implements \Persistent { public function getValue() { - return $this->value; } @@ -134,7 +132,6 @@ class TranslatableItemI18n implements \Persistent { public function getValue2() { - return $this->value2; } }