api-platform / api-platform/schema-generator

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

Ouverte
#392 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub
enhancement
Langage dominant
PHP
Étoiles
474
Forks
107
Métriques de merge des PR
Aucune PR mergée en 30 j

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

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.