Each Dashlet on the Dashboard is a Surf Component which can be rendered by any number of renderers. Alfresco exclusively uses WebScripts (which comprise of a JavaScript or Java controller along with a FreeMarker template) to render its dashlets but Surf also supports vanilla FreeMarker and JSP renderers out-of-the-box. It is possible to plug-in additional renderers into Surf and I believe that some work was done on a PHP renderer but I have no idea if it is complete or has ever been used in anger. Depending upon much more effort you want to put in your options are fairly limitless, however for simplicity it would be recommended to use the WebScript option,
Regards,
Dave