Note, this is a highly subjective area.
First, go read this article (yes, I know the question is about PHP; we'll get there)
Python is not Java
In particular, pay attention to this passage on getters and setters.
In Java, you have to use getters and setters because using public fields gives you no opportunity to go back and change your mind later to using getters and setters. So in Java, you might as well get the chore out of the way up front. In Python, this is silly, because you can start with a normal attribute and change your mind at any time, without affecting any clients of the class. So, don't write getters and setters.
The basic gist here is, in a void, getter and setters aren't "good" or "bad". In the context of python they're bad because they're unnecessary. Python's property build-in (kind of like __get in php) lets you define a getter and setter at any point for an existing field. In the context of java they're good, because java has nothing like the property built-in or __get. The design of the language encourages a particular coding style.
PHP isn't a designed language. It started as a way to provide scripting access to low level C functions and some form processing. It has always been a glue language that takes a kitchen sink approach to language features. PHP3 and PHP4's idea of OOP was objects as collections of properties and methods. PHP5 went a radically different direction and brought in Java style Objects as references. PHP 5.3 is going to further add to the confusion by bringing in closures which will encourage more functional style coding.
So what's elegant code in an inelegant language? You need to develop a philosophy on a team by team basis. Do you want your PHP to resemble Java style coding, take on more functional conventions, or be straight up procedural? The team needs to make a choice than then stick to it. This is one of the reason Frameworks (Code Igniter, Symphony, Cake) have become so popular in PHP. They provide an architecture philosophy and a community of developers to come up with coding conventions with that architecture philosophy.
In a corporate environment, this is hard to do. An individual employee, without guidance, is going to code like they leaned to code in school and in their own career. PHP will let them get away with this and achieve positive, short term results at the cost of long term maintainability/elegance.
Finally, as an aside, I'd argue that Drupal and Joomla are, in parts, very well engineered. They took a mostly procedural, defuat global namespace PHP4 and via much clever work brought capital DP Design Patterns to the table.