gpt4 book ai didi

php - 使用 Javascript 和 PHP 的设计模式

转载 作者:行者123 更新时间:2023-11-29 18:32:00 24 4
gpt4 key购买 nike

我正在用 PHP 创建一个网站,它也有 Javascript 元素。这一个,将有一个类似于插件系统的东西,插件可以动态地添加到网站。

我已经创建了插件系统,但我不喜欢设计中的某些元素。特别是,我使用的是 MVC 模式,但 javascript 抽象存在问题。

我有一个加载所有插件的特定文件。然后,有一个 javascript 文件可以动态地将框添加到窗口,这取决于所做的选择,以及应该使用什么插件。

在js文件中是这样的:

 if (SelValue == 'image_list')
image_list(form_name, new_div, parent_div);

if (SelValue == 'multiple_columns')
multiple_columns(form_name, new_div, parent_div);

然后,紧接着是 imagelist() 等的声明。当然,这非常麻烦,而且看起来肯定不是一个好的做法。我希望对所有这些进行抽象和隔离,这样如果可能的话,插件只是添加到我的代码中的一个简单步骤。

您是否知道适合这种情况的任何设计模式或实践?

最佳答案

您可以创建一个包含所有函数的对象,例如 image_listmultiple_columns。使用它们看起来像:

plugins[SelValue](form_name, new_div, parent_div);

添加一个新函数看起来像这样:

plugins.image_list = function (form_name, new_div, parent_div) {
/* … */
}

这个定义可以放在不同的文件中。是这个意思吗?

编辑:漂亮的单文件版本:

plugins = {
image_list: function (form_name, new_div, parent_div) {
/* … */
},
multiple_columns: function (form_name, new_div, parent_div) {
/* … */
},
};
plugins[SelValue](form_name, new_div, parent_div);

关于php - 使用 Javascript 和 PHP 的设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7163658/

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