一段时间以来,我正在考虑如何根据数据库条目在php中动态加载代码。我试图找一些相关的东西,但是找不到任何可以彻底回答我问题的东西。我正在使用Laravel - 不确定这可能是解决这一特定问题的主题。
请参阅以下代码中的“示例数据”,其中我试图快速概述数据库结构。所以对于一个游戏,我们可以说我们的角色可以在一个位置。任何位置基本上看起来都一样。你有一个表格在这个位置写一条消息 - 没什么特别的。但是可能会有一些例外。例如,您可能有一个位置,它实现了一些更多的逻辑,例如列出所有在线字符(+显示其当前位置的名称)。或者某个位置可能会显示其他一些其他内容。
这是我到目前为止所提出的,但似乎都不是最佳的:
modules
,与位置表有多对多的关系。然后,modules
表将具有一个位置的条目,该位置告诉应用程序“执行”的内容。 Fe,一个位置可能包含条目thread
,用于发布消息list
,用于显示在线角色及其位置的概述trader
,以允许某些游戏机制等。 对我而言,第二种选择似乎是实现我想要实现的目标的正确方式。我会有代表这些模块的类,函数等。但它似乎也很难硬码。意思是,对于后面的代码中的一个,我将不得不区分我将来可能或不想要改变的值,这将需要大量的重构。因为我必须区分字符串,这种设计很容易出现拼写错误,而不是......
字符:
id | location_id (nullable) | name
---------------------------------
1 | 1 | Test
位置:
id | name
----------------
1 | Location #1
2 | Online Characters
对于上面提到的版本,我会添加:
模块:
id | name
---------
1 | thread
2 | list
3 | trader
location_modules:
location_id | modules_id
------------------------
1 | 1
1 | 3
2 | 2