Solved!
Rename
app/Controllers/app.php
to
app/controllers/App.php
In composer.json
replace line 31 with:
"App\\": "app/",
"App\\Controllers\\": "app/controllers/"
As per this link at soberwp.
Run
composer dump-autoload
Run (optional?)
yarn build
These steps seemed to have solved my empty ACF and namespaced variables issue. I have no idea why; namespacing is a black art to me.
Note 1: if you are working on a caps-insensitive system like OSX and pushing to a caps-senstive server like linux you might have additional issues with duplicate filenames. Use the file explorer in Github or wherever you keep your repo to check for duplicate but case-changed versions of folders or files in app/
(i.e. controllers
and Controllers
, single.php
and Single.php
Note 2: all controller names must be CamelCaps versions of the template names with dashes removed —front-page.blade.php
becomes FrontPage.php
Note 3: Adding this to your ~/.gitconfig
might stop case insensitivity issues on OSX:
[core]
ignorecase = false