Sometimes hard to extend Yii

Again I run into problems extending Yii. This time I want to access CClientScript::$_metas in order to change meta tags into another pattern.

For example this meta tag

should be transformed into

qiang mentioned in one of my feature requests:

In this case I don’t think at all it’s a sufficient reason and also I don’t think the way Yii generates the meta tags will be changed upon request (because it’s already very short and clear code).

So my question is (as a OOP and framework beginner), what’s the reason for all the private attributes that could be protected in order to make things more extendable? I know what I’m trying to accomplish in this case is very trivial and one may don’t understand the need for it. But that’s not the case, I think a framework should give the developer the freedom to extend everything IF it’s easy possible to implement. A protected attribute is very easy so I don’t get it.

Anyone? Maybe qiang himself? :D

The goal of OOP is to treat an object as a black box: you can make it behave a certain way, but it is not necesairy to know exactly how that behavior is accomplished.

In the case of your meta tag its behavior depends on the value of its properties (like ‘language’). So as long as you can assign values to the language and other properties, it is not important how these are represented in the final html document.