PHP特性的UML表示

PHP特性的UML表示,php,symfony,uml,behavior,traits,Php,Symfony,Uml,Behavior,Traits,我正在用Symfony2/doctor创建项目,并尝试实现traits。 到目前为止,在小规模的试用中没有问题,但在深入复杂项目之前,我通常会做UML类图和序列图 什么是用来象征PHP特性的UML设计对象,据我所知,这些特性可以看作是行为?有什么干净的方法可以做到这一点吗 非常感谢你的回答 Nicolas在我看到的最早的一篇文章中,角色/特征被解释为,它们用UML表示,并用一条线将角色/特征连接到类中的方法/函数 在我看来,PHP特性只不过是在其他语言中找到的协议定义。该协议是该类的一些功能扩展

我正在用Symfony2/doctor创建项目,并尝试实现traits。 到目前为止,在小规模的试用中没有问题,但在深入复杂项目之前,我通常会做UML类图和序列图

什么是用来象征PHP特性的UML设计对象,据我所知,这些特性可以看作是行为?有什么干净的方法可以做到这一点吗

非常感谢你的回答


Nicolas

在我看到的最早的一篇文章中,角色/特征被解释为,它们用UML表示,并用一条线将角色/特征连接到类中的方法/函数

在我看来,PHP特性只不过是在其他语言中找到的协议定义。该协议是该类的一些功能扩展。您通常会使用一个接口(Trait)和使用它的类对其进行建模,并在其中绘制类与Trait的关系。

PHP
Trait
基本上是或连接到类中使用的,并使用多重继承表示法

另见:

  • 图:文章中的“带有特征的UML图”

  • PHP
    5.4.0开始,
    PHP
    实现了一种名为
    Traits
    代码重用方法

    Traits
    是单一继承语言(如
    PHP
    )中代码重用的一种机制。
    Trait
    旨在减少单一继承的一些限制,使开发人员能够在不同类层次结构中的几个独立类中自由重用方法集。
    Traits
    和类组合的语义是以一种降低复杂性的方式定义的,并且避免了与多重继承和
    mixin
    相关的典型问题

    Trait
    类似于类,但仅用于以细粒度和一致的方式对功能进行分组。不可能单独实例化
    Trait
    。它是对传统继承的补充,支持行为的横向组合;也就是说,类成员的应用程序不需要继承


你说得对,我只是忘记了一个事实,即单一继承是PHP实现的选择。谢谢