api-platform / api-platform/schema-generator

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

未關閉
#392 1 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
enhancement
主要語言
PHP
星號
474
分支
107
PR 合併指標
30 天內沒有已合併 PR

描述

**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

貢獻指南

開啟貢獻指南

評估

這個 Issue 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。