Skip to content

Singular form of generated methods should end with 'y' when property ends with 'ies' #530

Closed
wants to merge 1 commit into from

8 participants

@naitsirch

The singular form is not correctly detected if the property ends with 'ies' like 'entries' which should be transformed to 'entry'.
This change is related to http://www.doctrine-project.org/jira/browse/DDC-2184

@doctrinebot

Hello,

thank you for positing this Pull Request. I have automatically opened an issue on our Jira Bug Tracker for you with the details of this Pull-Request. See the Link:

http://doctrine-project.org/jira/browse/DDC-2184

@doctrinebot

Oh btw, I just (automatically) realized that you are not creating this pull request against the master branch.

Unless there are good reasons for this, i would suggest to close and rebase the Pull Request against master and then create it again. Sorry!

@Ocramius
Doctrine member
Ocramius commented Dec 4, 2012

Wasn't the last suggestion about using a more advanced inflector?

@naitsirch

Which suggestion do you mean?

@beberlei
Doctrine member
beberlei commented Jan 6, 2013

I would take the code from cakephp that does singularize and pluralize https://github.com/cakephp/cakephp/blob/master/lib/Cake/Utility/Inflector.php including tests https://github.com/cakephp/cakephp/blob/master/lib/Cake/Test/Case/Utility/InflectorTest.php
and move it to Doctrine\Common\Util\Inflector - then use that API to do this singular/plural changes.

@jbergler
jbergler commented Jan 6, 2013

@beberlei I have already created PR against Doctrine\Common\Util\Inflector here https://github.com/doctrine/common/pull/227/files

I should also add that those changes use the code from CakePHP and I think I have a PR ready to push which makes the changes here to utilise the Util class once its been committed.

@naitsirch

Okay, so I'll close this pull request ;)

@naitsirch naitsirch closed this Jan 7, 2013
@promethean

@naitsirch @jbergler running 2.3.4 these issues with generated Entity method names ending 'ie' are remaining.

I am using yaml notation and from this kind of notation in yaml:

  oneToMany:
      tradedSecurities:
        targetEntity: Security
        mappedBy: tradingCountry

This kind of (wrongly named) method gets generated:

public function addTradedSecuritie(\X\Y\Entity\Security $tradedSecurities)
{
    $this->tradedSecurities[] = $tradedSecurities;

    return $this;
}

If this bug was resolved then I would have expected these issues to disappear ?

@naitsirch

Yes, I am experiencing this behaviour in latest 2.3.x, too, but haven't looked into the code again. It seems like doctrine/common#227 should have fixed this issue. Maybe it has not been merged into 2.3.x?

@beberlei What is the current status?

@Ocramius
Doctrine member
Ocramius commented Jul 5, 2013

@naitsirch including doctrine/common#227 into 2.3 is a no-go in my opinion, that's quite a break (and a new feature)

@naitsirch

In my opinion it's a bug fix ^^ because the current behaviour is not correct.
But I just wanted to know where the fix will be applied to

@jbergler

@naitsirch Short answer, looks like the changes are in 2.4 to use doctrine/inflector
see doctrine/common@18b2c6e

@afilina
afilina commented Oct 9, 2013

My "categories" are still generating "addCategorie"

@Ocramius
Doctrine member

@afilina this with the new inflector?

@afilina
afilina commented Oct 17, 2013

@Ocramius My mistake, I had <2.4-dev in my composer file. I changed to the higher version and updated dependencies. My function names are now correct. Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.