我是CMSes可扩展性的粉丝。您可以上传一些代码(通常是PHP),从CMS管理面板对其进行授权并运行。
我想知道Google App Engine是否可行。我还没有检查过Google App Engine现有CMS的可扩展性,但是如果有任何支持插件的话,我想知道他们是怎么做的,以及它们是仅仅是JS插件,还是支持Python / Java插件也是。
答案 0 :(得分:2)
答案 1 :(得分:2)
我没有公开的例子指出(抱歉),但我可以确认可以为App Engine项目创建Python插件。几个月前我完成了一个项目,它做了类似的事情。事情的症结归结为一条蟒蛇:
exec plugincode in someDict
以上'插件代码'是一个包含要执行的python代码的字符串,someDict是一个执行它的全局字典。这可以说比使用eval()要简洁。在我们的例子中,globals字典包含plugincode用于与系统通信的对象的实例。我无法想到这种(或类似的)方法的任何主要限制。例如plugincode可以声明一个类,并将该类的实例注册为回调处理程序等等。
在我们的案例中,我们将插件代码存储在数据存储中,并在适当的时候加载(例如,当启动应用程序的实例时)。
答案 2 :(得分:1)
实际上,我发现在App Engine应用程序中支持插件没有概念上的问题。例如,在Java上,您可以从数据存储或memcache(在应用程序初始化阶段)将插件jar提取到内存,然后根据需要使用自定义类加载器来加载插件类。实际上,您甚至可以从请求数据中加载类,并在需要时动态评估它们(我们如何在AppWrench Java控制台中执行此操作)。
此致 保尔。