## A方法-實例化控制器
訪問控制器的實例化通常是自動完成的,系統會根據URL地址解析出訪問的控制器名稱自動實例化,并且調用相關的操作方法。
如果你需要跨控制器調用的話,則可以單獨實例化:
~~~
// 實例化Home模塊的User控制器
$User = new \Home\Controller\UserController();
// 實例化Admin模塊的Blog控制器
$Blog = new \Admin\Controller\BlogController();
~~~
系統為上面的控制器實例化提供了一個快捷調用方法A,
調用格式:
`A('[項目://][分組/]模塊','控制器層名稱')`
上面的代碼可以簡化為:
~~~
// 假設當前模塊是Home模塊
$User = A('User');
$Blog = A('Admin/Blog');
~~~
默認情況下,A方法實例化的是默認控制器層(Controller),如果你要實例化其他的分層控制器的話,可以使用:
~~~
// 假設當前模塊是Home模塊
// 實例化Event控制器
$User = A('User','Event');
$Blog = A('Admin/Blog','Event');
~~~
上面的代碼等效于:
~~~
// 實例化Home模塊的User事件控制器
$User = new \Home\Event\UserEvent();
// 實例化Admin模塊的Blog事件控制器
$Blog = new \Admin\Event\BlogEvent();
~~~
## URL生成
為了配合所使用的URL模式,我們需要能夠動態的根據當前的URL設置生成對應的URL地址,為此,ThinkPHP內置提供了U方法,用于URL的動態生成,可以確保項目在移植過程中不受環境的影響。
[定義規則](http://www.hmoore.net/manual/thinkphp/1718)