Right now, when generating entities, a column of type 'guid' will generate the following PHPDoc:
```
/**
* Get id
*
* @return guid
*/
public function getId() {...}
```
Since guid is not a valid PHP type, this throws a warning in PHPStorm, and I assume most IDEs.
Adding the type to the type alias list fixes the problem.
The current implementation of the exporters are not taking the entity
listeners into account. I have added test cases for most of the edge
cases I could think of and implemented the Exporter handling.
This PR originates from https://github.com/doctrine/doctrine2/pull/5864,
I was overwhelmed by the amount of conflicts I had to resolve so I
started anew on a clean master HEAD.
Squashed commits:
- Code review aftermath
- Add even more return type declarations
- Added `return null` to methods declared with nullable return types
- Removed unneeded docblocks when types are self-explanatory
Which is needed to test void methods that shouldn't raise any exception
on a certain condition. If the interpreter gets to the point where the
assertion count is incremented it means that no exceptions have been
thrown and our test is successful.
Important to note that some tests were slighly refactored to simplify
things a bit.
rebased commits:
- Added test case for bi-directional OneToOne in YamlExporter
- Only inspect joinColumns for owning side in bi-directional OneToOne in YamlExporter
- Adding bi-directional test case without joinColumn to XmlExporter test
- Same testcase also applied to PhpExporter
- Fixing bi-directional issue in PhpExporter when inspecting joinColumns index
- Implemented @Ocramius suggestions
In PHP 5.x + XDebug < 2.4, the output would be "string:..."
In PHP 7.x + XDebug >= 2.4, the output would be "the/file/name.php:11:string:..."
This is an improvement in XDebug that is quite annoying for our purposes, but is actually welcome to most users anyway.
This commit simply fixes that incompatibility
There can be unique indexes automatically created for join column.
If join column is also primary key we should keep only primary key on this column.
Oracle does not allow having both unique index and primary key on the same column, it is useless for mysql too.
(Previously it was done by DBAL, but now it allows duplicate indexes)