FrontControllerを使いたいときはデフォルトコンストラクタを


Slim3において、ふつーにマッピングしてる間は何も考えずにControllerクラスを生成すればOK。

ただし、URLマッピングしたりとかでControllerクラスに「引数つきコンストラクタ」なんか定義しちゃうと、そのままでは通常の名前からのController呼び出し( /aaa → slim3route.AaaController )が失敗しちゃいます。

他のコンストラクタを書いちゃったときは、暗黙の際に自動で定義されているデフォルトコンストラクタ(引数なしコンストラクタ)を定義してやりましょう。

つまり、

public class AaaController extends Controller
{
}

か、

public class AaaController extends Controller
{
//これが必ず存在するようにする!
public AaaController()
{
}

public AaaController( type arg)
{
}
}

でないとダメと


7年 ago

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です