The build-model task uses the method _checkForPackageParameter to make sure that project schema files do not use the 'package' keyword either globally or inside each model definition. However, it prevents the definition of all string values at the top level.
Analysis:
The cause is the following line in sfDoctrineBuildModelTask::_checkForPackageParameter():
if ($key == 'package' || isset($value['package']))
If $value happens to be a string, [ 'package' ] is interpreted as a string offset and 'package' is then cast to INT, which is int(0). Therefore, unless $value is an empty string, the expression is true.
Fix:
if ($key == 'package' || (is_array($value) && isset($value['package'])))
Example:
Create a schema file with the following content:
connection: doctrine
TestTable:
tableName: test_table
columns:
columns:
id:
type: integer(4)
primary: true
autoincrement: true