api-platform / api-platform/schema-generator

ambiguous EnglishInflector result may gives not expected adder/ remover method names

Open
#392 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
PHP
Stars
474
Forks
107
PR merge metrics
No merged PRs in 30d

Description

**Description**
Singularized form of adder/remover method name for collections is hardcoded to the first item from the list returned by EnglishInflector:
https://github.com/api-platform/schema-generator/blob/ed297c7e7c7670c23102176b22667efcaab8dcac/src/Model/Class_.php#L335

If transformation is ambiguous inflector return list of proposition, and in some cases first one it not we want to, for example:

```sh
$ php -r 'require "vendor/autoload.php"; echo (new Symfony\Component\String\Inflector\EnglishInflector())->singularize("languages")[0].PHP_EOL;'
languag
```

**How to reproduce**

```yaml
types:
Book:
properties:
languages:
cardinality: "(1..*)"
range: Language
```
gives:
```php
class Book
(...)
function addLanguag(Language $languag)
(...)
```

**Possible Solution**
- ability to use alternate inflector class (in.e., decoration of EnglishInflector)
- give singular form of given property in explicit by additional config paramater

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.