只需要一行程式碼的Framework

一般的MVC架構,Front controller的結構可以非常複雜,在這裏有一個非常簡單的方式,就可以實現Front controller的功能,只需要一行的程式碼:
call_user_func($_REQUEST['action']);

只需要透過call_user_func()就可以進行一般的控制,我們來完成整個流程:
$_REQUEST=array('controller'=>'Contacts','action'=>'edit');
$controller=new $_REQUEST['controller'];
call_user_func(array($controller,$_REQUEST['action']));
class Contacts
{
   function edit()
   {
      echo 'complete';
   }
}

完成!!不過還有很多安全的考量,所以不建議直接使用這個方式,因為使用者可以指定任何class,任何function。基於安全問題,請使用前為自已再進行一些封裝。

沒有留言: