3

目前我有以下结构:

Model/
    Entities/
    Repositories/
    Proxies/
    Services/
        User/
            Manager.php
            Relations/
                 Friendship.php
        Group/
            Manager.php
            Administration.php
            Posts/
                Manager.php
        ...

由于我使用的是 Doctrine,因此我选择了这种结构,因为每个文件夹对应一个实体。以这种方式组织有什么问题吗?

我想知道您对如何避免将来由于组织不良而导致文件夹结构发生变化的意见。有没有更好的方法从服务层组织类?你能推荐什么?谢谢。

4

1 回答 1

1

它看起来像是一个完美的有效结构,但是,我可能有两个建议:

  • 我通常将我的代理放在我的库文件夹之外,因为首先,它是一个不遵循PSR-0建议的特殊类,其次,您可能需要在进行数据库更新时删除这些类,出于这些原因,我将它们放入/var/tmp/proxies

  • 服务层结构看起来不错,但请确保应用于您的逻辑而不是您的实体,我的意思是,UserService 完全有效地收集用户背后的所有逻辑,但由于它们的关系,也可能与其他一些实体一起使用. 结论“一个实体!== 一项服务”

  • 我也避免使用复数形式,这有点个人观点,但它有点类似于数据库系统中使用的命名约定,表代表一个实体,因此不应该接受复数形式。顺便说一句,大多数框架(即 Zf/Symfony2/Doctrine2)都使用单数。

  • 最后但最不重要的是,无论您现在选择什么结构,都要保持一致,我们永远不会说得足够多,我有时会从其他人那里收回项目,甚至我不明白他们为什么或如何这样做,我尝试遵循他们的约定,在与团队一起进行项目时,这是一项要求

如果您决定有一天重构您的结构,请花一两天时间,在任何地方都这样做,或者不这样做。

于 2011-08-29T15:08:04.747 回答