No, I don’t have any experience with PHP. Perhaps someone else here does? I can give you the general idea of what is necessary, though.
As a security precaution, WebGL requires that all textures used in rendering be loaded from the same origin as the HTML page, or via a valid CORS request. When using a WMS-based imagery layer, the images are almost always coming from a different origin. If you have control over the WMS server, the best solution by far is to configure it to allow CORS access. This page describes how to enable CORS access in various environments:
If enabling CORS is not an option, the next best thing is to proxy requests to the WMS server through a service running on the same web server that hosts the HTML page. That way, from the standpoint of the browser, the images are coming from the same origin. This is what the “Imagery Layers” Sandcastle example does, by using a proxy service built into our Jetty-based development server. Recreating this proxy service in other environments like PHP should be fairly straightforward. It simply needs to accept a target URL as a parameter, request that URL itself, and then return the results to the original caller, taking care to preserve headers and such along the way. The really critical thing, though, is that it must run on the exact same hostname and port as the server that hosts the HTML pages in which Cesium is embedded.
I hope this helps,