Всегда задаюсь вопросом, когда говорят про «Java-стиль». Что имеется в виду?
ну во-первых на все класс. С этим можно спорить, но факт остается фактом - большинство современных фреймворков стараются не использовать функции и пишут классы. Например Symfony/FileSystem, это должен быть набор функций.
Во-вторых популярные фреймворки слизаны с java мира - hibernate (а вот нафига identity map в php?), Spring, phpunit, наверняка что-то еще.
На каждый чих и пук в "нормальных" проектах/фреймворках пишутся интерфейсы, в особо запущенных случаях обязательно есть абстрактный класс, даже если всего одна реализация далее по иерархии (привет Zend, sylius).
Вон, fixxer'у в языке с динамической типизацией не хватает дженериков
PS и я не то что бы против этого, просто не понятно, почему взять java, раз все это нужно. Нормальные тулы - IDEA больше развита, чем phpstorm. Hibernate вроде как сильно лучше Doctrine.