gpt4 book ai didi

受 url 传播变化启发的 PHP 和服务器层次结构设计

转载 作者:行者123 更新时间:2023-11-30 23:38:08 28 4
gpt4 key购买 nike

我有一个关于正确设计 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)

关于受 url 传播变化启发的 PHP 和服务器层次结构设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5763741/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com