The issue you're facing is not related to the framework but to your understanding of relatives paths in PHP. Relative paths are always relative to the working directory.
If you're using the framework for the web (and not in CLI mode), the working directory is the directory where your
index.php is located, as long as you don't explicitly change the working directory with the chdir command.
You can verify it by echoing
getcwd() at the very top of your script.
That means that any relative path used in your application (no matter if it's being called from
app/controllers/foo.php or any file located in any directory) is relative to that directory.
So in your case, the
settings directory is expected to be found in the same directory as
apps/ controllers/ settings/ templates.json index.php