Я создаю проекты с Symfony2 / Doctrine и пытаюсь реализовать черты. До сих пор нет проблем с небольшими попытками, но я обычно делаю диаграммы классов и диаграмм UML до глубоких сложных проектов.
Что представляет собой объект (ы) дизайна UML, который будет использоваться для обозначения свойств PHP, которые можно увидеть, насколько я знаю, как поведение? Есть ли какой-либо чистый способ сделать это?
Большое спасибо за ваши ответы!
никола
PHP Trait – это, в основном, UML абстрактный класс или шаблон UML-класса, связанный с используемым классом с отношением обобщения UML с использованием множественного обозначения наследования

Смотрите также:
Рисунок «Диаграмма UML с признаком» в статье Брендан Бейтс: «Черты: правильный путь»
Программисты: Есть ли представление для миксинов или черт на UML?
Справочник PHP → Справочник по языку → Классы и объекты → Черты
Начиная с
PHP5.4.0,PHPреализует метод повторного использования кода под названиемTraits.
Traits– это механизм повторного использования кода в отдельных языках наследования, таких какPHP.Traitпредназначен для уменьшения некоторых ограничений одиночного наследования , позволяя разработчику свободно использовать множество методов в нескольких независимых классах, живущих в разных иерархиях классов. Семантика сочетанияTraitsи классов определяется таким образом, который уменьшает сложность и позволяет избежать типичных проблем, связанных с множественным наследованием иMixins.A
Traitпохож на класс, но предназначен только для групповой функциональности тонко и последовательно. Невозможно создать экземплярTraitсамостоятельно. Это дополнение к традиционному наследованию и обеспечивает горизонтальный состав поведения; то есть применение членов класса без необходимости наследования
В самой ранней статье, которую я видел в объяснениях Роли / Черты, они представлены в UML с линией, соединяющей роль / черту с методом / функцией внутри класса. http://scg.unibe.ch/archive/papers/Scha03aTraits.pdf
Как я вижу, PHP-признак – это не что иное, как определение протокола, которое вы найдете на других языках. Протокол является некоторым функциональным расширением для класса. Обычно вы моделируете это с помощью интерфейса (Trait) и класса, используя его, где вы рисуете отношение <> от класса к значению.