During normal order of events is (I think):
Where PHP/Local fields fall in this depends on what hook and priority you use for running your functions.
ACF starts up on “init” with a default priority (10).
Also there is the ACF hook “acf/include_fields”, and this is actually when the JSON files are loaded.
To be honest, I do not believe that field groups are actually loaded from the database until they are needed and that your local PHP field groups will always override those in the database. Whether or not they override the JSON versions in any folders depends on if you load your fields before ACF looks at the JSON files or after.
Welcome to the Advanced Custom Fields community forum.
Browse through ideas, snippets of code, questions and answers between fellow ACF users
Helping others is a great way to earn karma, gain badges and help ACF development!