代码之家  ›  专栏  ›  技术社区  ›  Itay Moav -Malimovka

在php 5.3中有没有一个简单的模拟友谊的方法?

  •  3
  • Itay Moav -Malimovka  · 技术社区  · 14 年前

    我需要一些课程来帮助我系统中的其他课程。由于缺乏这一特点,我宣传了一些不应该公开的方法。结果是,我的团队成员以一种糟糕而丑陋的方式实现代码,这会导致混乱。

    在php 5.3中有定义友谊的方法吗?

    (我知道 http://bugs.php.net/bug.php?id=34044 如果没有简单的解决方案,你可能想在那里投票。

    3 回复  |  直到 13 年前
        1
  •  0
  •   Rob Young    14 年前

    简言之,不。通常接受的方法是要么指导您的团队如何针对您的库进行开发,要么重新设计。第一个解决方案可以很容易地通过phpDoc构建文档,并通过@visibility设置docbloc注释中的可见性,当然还可以实际记录类。第二个我不知道更多细节就无法发表评论。

    /**
     * Some helper class for LibraryInterface
     *
     * ATTENTION!
     * This class should not be used outside this package.
     *
     * @visibility package
     * @package mypackage
     */
    class Helper
    {
      public function doStuff()
      {
        /* does stuff */
      }
    }
    
    /**
     * Class for accessing some part of the library.
     *
     * @visibility public
     * @package mypackage
     */
    class LibraryInterface
    {
      public function doStuff()
      {
        $this->helper->doStuff();
      }
    }
    
        2
  •  3
  •   R. S.    13 年前

    我在寻找相同的功能,并且能够实现一个解决方案。要使用它,只需从类友谊派生并指定属于派生类的朋友的类。你可以在这里找到它: http://rommelsantor.com/clog/2011/04/23/php-5-3-class-friendship-support

        3
  •  -1
  •   Brent Baisley    14 年前

    我不知道你所说的“朋友”是什么意思。您可以使用抽象类,其中任何新类都可以“实现”该类。或者您可以让类扩展其他类,使方法、变量等“受保护”,而不是公共或私有的。

    如果您的团队以“糟糕和丑陋的方式”实现任何代码,那么您可能会遇到更大的问题。