<?php
namespace API;
class DB
{
public function __construct($args)
{
}
public function write()
{
echo 'write operation!';
}
public function read()
{
echo 'read operation!';
}
}
class Facade
{
public function __construct()
{
}
public static function getInstance($classname, $args)
{
return new $classname($args);
}
public static function getFacadeAccessor()
{
//
}
public static function __callstatic($method, $args)
{
$instance = static::getInstance(static::getFacadeAccessor(), array(1,2,3));
return call_user_func_array(array($instance, $method), $args);
}
}
class DBFacade extends Facade
{
public static function getFacadeAccessor()
{
return DB::class;
}
}
DBFacade::write('hello');