But since php isn’t complied, how would I know if something is broken until every code path is exercised? Genuine question
You exercise every code path with a unit or integration test.
I tend to write integration tests for the paths users take through the application (website), and fill in the holes with unit tests. I'll also write unit tests for methods that change often or are critical, such as business logic.