There are several ways to make phase platforms, but I've found one particular method which is best. Ideally, phase platforms have the following properties:
1. Allow explosions to hit the player from either side of the phase
2. Don't bounce stickies
3. Can be textured in whatever way you like
4. Don't require custom materials/textures
Previously I believed that you could only achieve three out of four of these. You could make a func_physbox_multiplayer with render disabled, using the
metal/metalgrate013a2 texture to let explosions hit on either side, and then applying a func_illusionary to let the player see where the physbox is, at the cost of having stickies bounce. Alternately, you could create a displacement with the desired texture and no hull collision ticked. Some textures just don't work with this method, but you can use the
overlays/noentry texture with a huge texture scale so it doesn't show up (like in
this post), and then use a func_illusionary.
BUT HERE'S THE BEST METHOD (or so I think):
Get the best of both worlds by creating a displacement with the
metal/metalgrate013a2 texture, having a huge texture scale such as 500000, and an offset of 16 X and 32 Y (this is to get roughly in the center of a grate hole, this is relative to the texture itself and independent of the scale). This way you have an invisible phase block that catches stickies (alternately lets them pass through if you tick "No Physics Collision"), which you can then indicate with a func_illusionary. Rockets, however, pass through this, so you'll also want to have a func_physbox_multiplayer in the same spot, again using the grate texture to let explosions pass through (you can just set Render Mode to "Don't Render" instead of doing the texture scale stuff), and have the "Motion Disabled" flag ticked. Even though there's a physbox there, the stickies will stick to the displacement instead of bouncing off the physbox.
EDIT: Forgot that you also need a physbox so rockets collide, edited accordingly.