我对php文件的正确设计及其在服务器上的存储有一个一般性的问题。

问题是这样的:我已经将一个php对象的功能拆分为不同的php文件,例如:

文件1 AndroidFlashCard.php

class AndroidFlashCard {
    public function retrieveCards($packname){}
    public function retrievePacks(){}
    ....


文件2 RetrieveCards.php

include ($_SERVER['DOCUMENT_ROOT'].'/flash_card/AndroidFlashCard.php');
$connection = new AndroidFlashCard();
$connection->retrieveCards($_REQUEST['pack']);
...


除了被认为会使单个函数调用单独的php文件产生不良代码臭味外,当类AndroidFlashCard的位置/名称更改时,还会发生此问题。假设我们采用这种劣质设计,我有1000种不同的功能...

想到的快速而肮脏的解决方案是拥有另一个包含文件:

文件3 include.php:

include ($_SERVER['DOCUMENT_ROOT']./[location of class])


但这并没有真正改变任何东西,因为如果include.php文件的位置改变了,我将不得不再次进行1000次改变。

因此,让我们考虑一下。如果我必须对1000个php文件进行1000次更改,而这些文件仅包含对类的引用,然后执行代码以执行功能,则可能是设计问题。

在android中,我只知道如何执行http请求,这就是为什么我将函数调用拆分为单独的文件的原因。

如果我可以掌握该php对象,它将使事情变得容易,但是我感觉这将很难完成。

什么是更简单的解决方案?编写目录结构是生产工作的设计部分吗?在获得批准后,只是将它们写成石头?

最佳答案

听起来这是类自动加载的一个好案例。当您尝试使用说文件2中的类时,php可以调用一个自动加载函数来实际找到要包含的类。您将不得不编写其背后的逻辑,但是那就是1更改,而不是您所说的1000。

__autoload($class_name)

07-24 09:37
查看更多