Would Domino benefit from an embedded PHP stack?

So Domino has JSP based technology in the form of XPages.   When I read the InfoWorld article title “7 Programming Languages on the Rise” and saw PHP on there I was not surprised.  Pretty much everything I do on the web (outside of work) is based on PHP.  My blog, the tools I use for my site, etc.

Has anyone thought if PHP would benefit the Domino server, the Lotus community and application development model for Domino?  I can imagine PHP being just another kind of page in an NSF.  Same kinds of libraries, controls, and themes XPages has but all based on PHP.  We could even have things like a WordPress template – the WordPress application based on NSF.

26 thoughts on “Would Domino benefit from an embedded PHP stack?

  1. Great idea, and even better if, like Xpages, you can run them in the Notes client to allow offline updates. Domino security layered onto these types of things would be pretty useful I’d think.

  2. Php geeks will never use Domino for this only reason and it appears to me as a very low priority compared to long awaited NSF improvements and général Api completion and convergence to Java

  3. Why stop at PHP (other than that IBM has a PHP in Java implementation).

    Django runs on Jython
    Rails runs on JRuby

    IBM does the model->NSF to replace the ORMs of several popular frameworks (yeah, right) and then..

    Plug in your language. Plug in in your framework. Start coding.

  4. @Dan, that is exactly what I was thinking. Supporting any language on Domino (in NSF) and you basically get all of the pros of replication, templates, etc for any language.

  5. Yes I would really like this although I have no clue how this would work with the IBM PVU and/or Extranet licensing of Domino.

  6. Bob,

    Thought about that a few years ago. However, not sure why PHP programmers would want to use Domino instead considering all the free servers out there beside the replication, work flow, security, integration, Web services, scalability and etc.

  7. Well I am currently at a company that has a Domino and a PHP developer (very small company). They have separate servers, separate tasks and in some way they compete against each other. For every project management has to decide if it is done in Domino or PHP (or sometimes something completely different). Now if a Domino server would support PHP you would have one server, could use a common data store and even share some tasks.
    What I really liked about Garnet was that this would have given me the Tomcat server on Domino but this is completely off-topic.

  8. @Henning – sounds like a feature request! I hear this in many Domino shops. Domino development is always competing with other groups within the same company. Having it all hosted on Domino would bring a lot of security and proven content management models.

  9. Hi Bob,

    what domino needs is a collaboration stack, not another script language to get more “lowend” programmers (no offense) into domino, like you are trying with JS for XPage business logic *argh*. Something that stops all those single, fragmented nsf applications and delivers an integrated information management platform, that can be extended with nsf-application. Just Image MS SP with XPages instead of Web-Parts ->*The Bomb!!*.

    There is no serious business advantage for large corps when you add another scripting language, my boss would say ‘oh not another coder feature by ibm, lets move even faster to a company that delivers BUSINESS Features, as they seem to absolutely not get it’.

    It’s really sad to see all the movements away from domino here in germany, because domino was my start at corporate-it, but the competition has a much more integrated information management approach -> thats what needs to be done, not adding coder tools to fascilitate integration of (fragmented) open source tools (wordpress).

    The only somehow unique selling point of Domino is currently the good old replication and existing infrastructure – the rest doesn’t matter for management. Daimler, Deutsche Bank,… represent the generic attitude in germany towards domino, and believe me, PHP for sure will not bring those companys back and the small php companys will not pay for a domino stack.

    I think the only relevant target group are companys like Heinz described, that will use domino simply as Persistence-Layer with replication support – if they don’t want to use one of the OS NOSQL databases that support replication.

    Best Regards

  10. @Henning – after finishing up some Domino work for a contract gig recently, they asked me to stay and migrate a PHP website from plain PHP to Drupal to take advantage of the content management features. Drupal is remarkably like Domino in many ways but it’s all implemented over a SQL db, usually MySQL. It’s no wonder that there are efforts to use CouchDB with Drupal (and Django and…)

    Sometimes I just want a simple document model and a simple “don’t abstract away the web” framework that has scripting and simple templates.

  11. @Richard – well just imagine this. There are a bunch of Domain providers out there that host Domino. You download the Free Domino Designer and viola – you can now develop, test and deploy your solutions to the internet using your favorite language. And then, people with Lotus Notes might be able to even take those applications off line.

  12. Forgive my ignorance but isn’t PHP just a file based application/development platform? And wouldn’t the new SVN-type features of Domino Designer make it trivial to maintain those files as resources in the nsf while doing actual development in the native IDE for PHP (assuming that Eclipse supports that)? Then you’d only (he says dismissively) have to sort out the ability to run the app on Domino, and hopefully in the Notes client as well.

  13. @Kevin – I think it may be more than that. Supporting PHP as actual pages versus NSF attachments are two different things and then you would need PHP API’s to get at the Domino data. Lastly, I was thinking of more of a visual tool like we have for XPages – DND, in the normal Designer manner.

  14. Eclipse support for PHP is improvable (although Aptana once had nice PHP support in 1.5, dismissed it in 2.0 now trying to bring it back with 3.0 now). The best (non-free) implementation based on Eclipse probably is Zend Studio.
    I assume implementing PHP into Domino a lot of work but still like the idea.

  15. @Henning – so I am thinking Aptana installed on Designer (using the virtual file system) and a DSAPI extension installed on the server may do it. I will have to investigate that.

    @Richard – ah ok, re-reading your post that makes sense.

  16. Yes, it would be a BIG enhancement for the Domino platform plus the Domino security model = awesome. Please, consider seriously adding to the next release, :). This would motivate a lot of customers who are still running older versions of Domino 6.x, 7.x. And would finish headaches for customers running PHP and Domino in their servers.

    Is there out there a “campaign logo” for promoting your idea? W

  17. @Karsten – That’s interesting. What Bob is proposing would need to use the Java API. As Stepan pointed out, IBM already has Java based PHP implementation in SMASH (SMASH uses Groovy too). That implementation can call Domino Java API.

    It would not be an alternate scripting language for XPages (it could but the point here is to allow exisitng PHP based frameworks to work on Domino). Ideally, you could run WordPress, Drupal, Joomla etc..

  18. I am all for opening up the Notes platform to any language we can. The whole mantra should be that this is RAD. You chose the programming language, you chose the data store (i.e. not just NSF but also SQL), and you even you hose the clients onto which you deploy your application. Its whatever works for you, but its fast, easy to deploy, and comes with all those good things like replication, security etc.

  19. Among reason why PHP is so much used :
    – free : addind php stack in Domino won’t make it free
    – free of very cheap hosting everywhere : won’t happen in Domino (at least not because you add php to the stack)
    – loved by script geeks in love with complete open source solution … typically the population that will be reluctant to use a “proprietary” platform
    – php is coupled with Apache & MySQL in “LAMP” : Domino HTTP stack is not apache and is far less customisable, I doubt IBM bundels MySQL with Domino (of course we could add that ourself…but what a “monster” do we have in the end in terme of maintenance…

    And more arguments “against” this :
    – putting PHP “in” Domino is a thing, supporting it, evolving it as fast as php evolves is another. Remember of long we waited to have domino upgrade “fast enough” it’s JVM…and we still don’t have access “raw” to a decent servlet engine
    – I would much much more prefer that IBM finishes stuff that they have begun, improves the already tremendous xpages, and bring NSF to the 21 century : query, transaction, JPA support is much more important if you want to get “credit” among the developers crowd

    No offense here, but I’m a little tired of “experimentation” around adding feature, never really complete them, and switch to another subject “of the day”…

  20. Alright,

    here something to THINK about before playing fan-boy:

    Is IBM going to bundle Mysql with domino, extending it with replication, the security model,…?

    Is IBM creating a wrapper for domino-access, to be able to easily switch out Myql for Domino?

    You say no?
    Well, then i wish all of you guys, who want to use wordpress,… inside domino (with replication,…) a lot of fun rewriting the data-access layer of these open source apps (it will be even more “fun”, because layered architecture isn’t that common for php).

    Best Regards

  21. @Mario – Rewriting the data access layer is precisely the point. It’s no small task but for the document oriented frameworks it would be a much simpler layer than the ORMs.

    There’s plenty of data access layer wrangling out there. Here’s an experimental integration between Drupal and CouchDB.


    The Lift web framework (written in Scala) supports CouchDB


    @smicky – “but I’m a little tired of “experimentation” around adding feature”. I understand but IBM must continue to innovate and lead *in addition* to addressing known outstanding issues. I for one, would welcome a little more “experimentation”.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.