PHP Object References in Frameworks
- by bigstylee
Before I dive into the disscusion part a quick question; Is there a method to determine if a variable is a reference to another variable/object? For example
$foo = 'Hello World';
$bar = &$foo;
echo (is_reference($bar) ? 'Is reference' : 'Is orginal';
I have been using PHP5 for a few years now (personal use only) and I would say I am moderately reversed on the topic of Object Orientated implementation. However the concept of Model View Controller Framework is fairly new to me.
I have looked a number of tutorials and looked at some of the open source frameworks (mainly CodeIgnitor) to get a better understanding how everything fits together. I am starting to appreciate the real benefits of using this type of structure.
I am used to implementing object referencing in the following technique.
class Foo{
public $var = 'Hello World!';
}
class Bar{
public function __construct(){
global $Foo;
echo $Foo->var;
}
}
$Foo = new Foo;
$Bar = new Bar;
I was surprised to see that CodeIgnitor and Yii pass referencs of objects and can be accessed via the following method:
$this->load->view('argument')
The immediate advantage I can see is a lot less code and more user friendly. But I do wonder if it is more efficient as these frameworks are presumably optimised? Or simply to make the code more user friendly? This was an interesting article Do not use PHP references.