我突然想知道 ATG 与面向对象的PHP 一起工作?真的有可能吗?如果不是为什么?
示例
:我们使用Droplet在ATG中执行某些功能,而相同 函数也可以用PHP完成。
另外为什么Repositories(数据库)不适用于PHP?
答案 0 :(得分:1)
ATG框架是用Java编写的,可以在Java VM中运行。
编写,自定义,增强或扩展ATG的代码与现有Java代码一起部署,在同一个VM中运行,并要求开发人员调用Java对象上的方法或扩展Java类。
该框架提供了用于从UI层访问ATG功能的标签。这些标记是用Java编写的,并作为JSP标记库实现,旨在在基于Java的Web应用程序服务器(如JBOSS或WebLogic)中运行
PHP是一个完全不同的应用程序框架。它不在Java VM中运行,并且没有简单的机制来从PHP代码调用Java方法。
我会质疑你真正想要达到的目标是什么?是否需要使用底层ATG功能,但更喜欢用于UI代码的PHP语法? JSP,JSTL和DSP标签真的是那么不同而难以比较吗?
如果你真的想继续使用PHP语法但是要使用ATG功能,你可以在Java中查看某种PHP解释器 - 集成PHP的实现以在Java VM中运行。我相信Caucho Resin是一个这样的实现,但我不知道它是多么稳定,可靠或特色。即使这样,您也可能无法使用DSP标记,并且需要一些其他机制来绑定PHP代码中的Java代码。
您是否希望将基础ATG功能重新实现到基于PHP的框架中? ATG已经在商业规模上积极开发了大约20年。当然,您可能不想实现ATG所做的所有,但要仔细研究ATG框架所做的一切。你应该清楚地知道你想要达到的目标。
如果你打算重新实现ATG功能,比如一个开源商务平台,你还应该考虑PHP是否实际上是一种合适的语言(我想我有发起火焰的风险)这里的战争)。
此外,您应该记住,在创建平台(而不是解决方案)时,您不仅需要提供基本的业务功能,还需要其他开发人员定制,增强和扩展的机制。特别是在不妨碍升级路径的方式 - 因此需要明确分离平台中的内容和自定义内容,同时还可以非常轻松地修改或覆盖核心平台中的内容。
答案 1 :(得分:0)
ATG是一个框架,用于构建具有Personalization,Shopping Cart等特定模块的网站。它基于JAVA。
与ATG的竞争产品(如WebSphere Commerce或Hybris)中存在的功能相同,没有理由不能在您选择的任何语言或平台上构建相同的功能。您应该问的问题是,您希望自己构建多少功能,以及您希望从应用程序供应商提供的框架中“重用”多少。