1

我是CMSes可扩展性的粉丝。您可以上传一些代码(通常是PHP),从CMS管理面板对其进行授权并运行。如何为Google App Engine设计可扩展的CMS?

我想知道在Google App Engine中是否有可能。我还没有检查现有的CMS App for Google App Engine的可扩展性,但是如果它们中的任何一个支持插件,我想知道他们是如何做到的,以及它们是否只是JS插件,或者它们是否支持Python/Java插件也是如此。

回答

1

其实我没有看到支持App Engine应用程序插件的概念问题。例如,在Java上,您可以从数据存储或memcache(在应用程序初始化阶段)将内容插入到内存中,然后根据需要使用自定义类加载器加载插件类。实际上,您甚至可以从请求数据中加载类并在需要时即时评估它们(我们如何在AppWrench Java控制台中执行此操作)。

Regards, Pavel。

+0

你知道如果在Python中可能也是这样吗? –

+1

Python是脚本语言并具有eval()函数,所以这绝对应该是可能的。 –

2

Google的Nick Johnson写了一篇关于如何编写blog system for app engine的完整博客文章系列。如果它没有做到你想要的,我相信你可以扩展它,但通常一个博客系统对于大多数人来说是足够的CMS。

+0

尼斯链接!谢谢! –

+0

尼克约翰逊尚未达到“可扩展性”部分,但这是他说他会添加的功能之一 –

2

我没有公开的示例指向(抱歉),但我可以确认可以为App Engine项目创建Python插件。几个月前,我完成了一个项目,做了这样的事情。事物的症结归结为蟒蛇的单行:

exec plugincode in someDict 

上面的“plugincode”是包含一些Python代码来执行字符串,而someDict是全局的字典中执行它这无疑是比使用eval()更清洁。在我们的例子中,globals字典包含一个插件代码用来与系统通信的对象实例。我不能想到这个(或类似的)方法的任何主要限制。例如plugincode可以声明一个类,并将该类的一个实例注册为回调处理程序等等。

在我们的例子中,我们将插件代码存储在Data Store中,并在适当的时候加载它(例如,应用程序已启动)。

相关问题