Is it possible to run a PHP website published from Tridion with basic Content Delivery functionality?

By "basic CD functionality" I mean that it would need to support Component Linking and the ability to access the Broker side of the Content Delivery services to display dynamic CPs etc…

What would I need to do to be able to get this to work? Is a Juggernet type solution for PHP/Java interoperability an option?

I appreciate that I would then need to write a PHP "wrapper" around these interoperability objects so that my PHP pages can run - and so is a significant amount of work.

Is it possible and is there any advice on how to approach it?

N.B. Obviously this would be unsupported by SDL and is probably a bad idea - but I'm looking at this in purely "academic" terms to see if and how it could be achieved.

2 Answers 2


A decent part of the Content Delivery functionality is exposed through the so-called Content Delivery Web Services. The most familiar of these web services is the OData.svc, which allows (read-only) access to the common types (Pages, ComponentPresentations, Binaries, etc).

OData is an open protocol, basically an extension of the good-old Atom format with a well-defined query language on top of it. It has a learning curve of course. But relative to other Tridion technologies the curve is not very steep. And it's a thing of beauty to explore your broker database by hacking a URL.

From PHP you can access the OData service using their regular web loading functionality. Or you can look for a specialized OData client, which probably will make building the queries and parsing the results easier.


As far as I know, your best option for PHP is using the Content Delivery Service (OData). There's at least one Odata library for PHP, and given how open OData is, you can probably even work without it.

For any Tridion specific task that you need to apply to your content before serving it you can always use REL (REL is executed on Retrieval of content, so the results offered by the webservice would already include the execution of REL) and it would make your application quite flexible too.

Or, indeed, you could go down the route of creating some sort of wrapper around the Java libraries, but I would certainly recommend looking at OData first.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.