Functional tests are best described as tests for your user stories. If you've dealt with user stories before they normally follow the following pattern:
As a [role], I want to [desire], so that [benefit/desired outcome]
For the following examples we'll use this user story as an example:
As a Dungeon Master, I want to ensure harmony and mutual trust, so that
the party can work together as a team
The two most popular testing frameworks for functional tests in PHP are Behat and PHPSpec.