The single interface of your profiles should be their adoption in the corresponding roles part of the pattern using the Puppet include keyword. Bear this in mind when writing your profiles. We would simply write the following in any role that requires PHP to be installed on that node:
...
include profile::programming::php
...
With regard to the Puppet include keyword:
- Multiple declarations are OK
- It relies on external data for parameters