// v1
class HwLib {
function hello() {
return "hello";
}
function world() {
return "world";
}
}
*/
// v2
class HwLib {
function greet() {
return "greetings and salutations";
}
function world() {
return "world";
}
}
class HwLibV2ToV1Adapter {
public $libv2;
function __construct($libv2) {
$this->libv2 = $libv2;
}
function hello() {
return $this->libv2->greet();
}
function world() {
return "world";
}
}
//the original application call didn’t pass a parameter, the HwLibInstance() Factory defaults to returning
//an instance of the HwLib wrapped in the HwLibV2toV1Adapter class. However, if you’re writing new
//code, you can pass in a parameter of ‘V2’ to let the function know you want the HwLib newer version
//directly without adapting it.
function HwLibInstance($ver = false) {
switch ($ver) {
case 'V2'' :
return new HwLib();
default :
return new HwLibV2ToV1Adapter(new HwLib());
}
}
class HwLib {
function hello() {
return "hello";
}
function world() {
return "world";
}
}
*/
// v2
class HwLib {
function greet() {
return "greetings and salutations";
}
function world() {
return "world";
}
}
class HwLibV2ToV1Adapter {
public $libv2;
function __construct($libv2) {
$this->libv2 = $libv2;
}
function hello() {
return $this->libv2->greet();
}
function world() {
return "world";
}
}
//the original application call didn’t pass a parameter, the HwLibInstance() Factory defaults to returning
//an instance of the HwLib wrapped in the HwLibV2toV1Adapter class. However, if you’re writing new
//code, you can pass in a parameter of ‘V2’ to let the function know you want the HwLib newer version
//directly without adapting it.
function HwLibInstance($ver = false) {
switch ($ver) {
case 'V2'' :
return new HwLib();
default :
return new HwLibV2ToV1Adapter(new HwLib());
}
}