最佳实践:包开发 - 包括其他类

时间:2013-10-12 11:38:04

标签: php laravel-4 composer-php

好的,所以我对OOP很新,在功能PHP中我们可以包含使用其中的函数的文件。

我正在尝试构建我的第一个包,一个简单的API包装器,我正在使用的API具有针对不同感兴趣区域的多个部分。举个例子:

GENRES
EVENTS
TICKETS

目前,我的包使用的文件结构与此类似:

MYNAME
 - MYPACKAGE
   - SRC
     - MyPackageSeviceProvider.php
     - MyPackage.php

现在,这一切都有效,我使用MyPackage.php进行一些简单的设置,比如设置API URL等。但是,我真的不想把API的所有部分都放到一个文件中,即getGenres(),getEvents()。

我想将其分解为子文件夹,因此我有如下结构:

MYNAME
 - MYPACKAGE
   - SRC
     - MyPackageSeviceProvider.php
     - MyPackage.php
     - GENRES
       - Genres.php
     - EVENTS 
       - Events.php
     - TICKETS
       - Tickets.php

我有一个Facade设置,所以我可以调用漂亮的方法(即MyPackage :: getWhatever();)。

实现我想要做的事情的最佳做法是什么?

我怎么能几乎包含类方法,所以我可以调用像MyPackage :: getGenres();并且它将路由到GENRES中的方法 - > Genres.php文件?

1 个答案:

答案 0 :(得分:2)

这个问题是偏离主题的,所以应该关闭,但我不能忍受看到你做错了。

命名空间+类文件名应该是连续的,而不是它们之间的额外src目录。如果你想让人们失明,你应该只做大概的事情。

src/
  - MyName/
     - MyPackage/
         - MyPackageSeviceProvider.php
         - MyPackage.php
         - Genres/
             - Genres.php
         - Events
             - Events.php
         - Tickets
             - Tickets.php

此外,您可能不希望在您的类或名称空间中使用复数。

  

我怎么会几乎包含类方法,所以我

您可以使用composer autoloader,并让它为您加载所有类文件。