JavaFX API позволяет получать ссылки на контроллеры только через метод FXMLLoader.load (). С экземпляром FXMLLoader вы можете сделать что-то вроде этого (как вы уже делаете :-)):
FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getResource("MainForm.fxml"));
Parent root = (Parent) loader.load();
// as soon as the load() method has been invoked, the scene graph and the
// controller instance are availlable:
MainFormController controller = loader.getController();
Это означает:
Лучше хранить ссылки на контроллеры на время строительства / время загрузки, если они понадобятся вам позже.
Еще лучше: подумайте дважды, если вам нужен доступ к родительскому контроллеру из дочернего контроллера. Это может быть предупреждением о том, что с архитектурой приложения что-то не так.
Если вам действительно нужна связь между дочерним контроллером и родительским контроллером, лучше сделайте это «управляемым событиями», то есть создайте наблюдаемые свойства в дочернем контроллере и попросите родительский контроллер прослушивать изменения.
Надеюсь, это поможет ...
Эти два модуля были скомпилированы в двоичный файл PHP? Если так, можно удалить или прокомментировать два подходящих расширения = строки в php.ini.