Не плутайте ОО Java з PHP. Java є єдиною мовою парадигми, що означає, що вона робить лише OO. З іншого боку, PHP - це багатомовна парадигма, ви можете робити функціональне програмування, або OO, або і те й інше.
Зараз немає такого поняття, як "погана" реалізація ОО. OO Java не є остаточною реалізацією, якої повинна або повинна дотримуватися будь-яка інша мова. Існують деякі остаточні концепції, і обидві мови повністю реалізують їх по-своєму (Java з початку, PHP з версії 5).
Отже, відповісти на ваше запитання: що робить CI і що ви робите з цим, це правильно у світі PHP. Масиви PHP - це одна з найбільш гнучких і корисних структур, і насправді добре використовувати масиви над об'єктами, коли ваші дані є лише інформацією (не несучи з собою логіки). Повністю OO-код - це не те саме, що "тільки код OO".
Якщо ви починаєте з PHP, використовуйте Java як орієнтир для передового досвіду OO, але не обмежуйте своє розуміння PHP через те, що "Java робить це інакше". Ви дійсно можете заграти в обох, парадигма не врятує вас, якщо ви не отримаєте понять.
Якщо в будь-якому випадку вам здається, що Java більше подобається (як особисте уподобання), перегляньте Ruby для веб-розробки, вони трохи тісніше пов'язані.