這似乎從mod_perl 2.0 docs,你可以使用「辦法」的語法做你想要什麼(我沒有測試這一點):
PerlAccessHandler MyApache::MyLoginModule->access_handler
PerlAuthenHandler MyApache::MyLoginModule->authen_handler
PerlAuthzHandler MyApache::MyLoginModule->authz_handler
我相信,這將導致mod_perl的對你的每一個012的命名方法調用以靜態方式類。
你也可以創建一個對象來調用handler
方法時,如果你想使用:
<Perl>
use MyApache::MyLoginModule;
$MyApache::MyLoginModule::access = MyApache::MyLoginModule->new(phase => 'access');
$MyApache::MyLoginModule::authen = MyApache::MyLoginModule->new(phase => 'authen');
$MyApache::MyLoginModule::authz = MyApache::MyLoginModule->new(phase => 'authz');
</Perl>
PerlAccessHandler $MyApache::MyLoginModule::access->handler
PerlAuthenHandler $MyApache::MyLoginModule::authen->handler
PerlAuthzHandler $MyApache::MyLoginModule::authz->handler
這種做法將讓你有一個handler
方法,可以根據屬性有不同的行爲創建對象時創建的對象。
免責聲明:這已經有一段時間,因爲我已經有mod_perl的配置,這部分的工作因此您的結果可能會有所不同!
使用 「...> access_handler」 語法的作品。有趣的是,處理程序獲得了兩個參數(第二個參數是請求對象),與handler()函數不同,後者只通過請求。 – AndrewR 2009-02-16 10:43:32