Rumah > Soal Jawab > teks badan
Penerangan latar belakang:
1 Dalam yii, terdapat Pengawal berikut
class PayController extends Controller
{
public function actionIosCallback()
{
echo 'hello yii';
}
}
访问www.XXX.com/pay/ios-callback,则页面显示hello yii
2 Dalam yaf, terdapat Pengawal berikut
class PayController extends Yaf_Controller_Abstract{
public function actionIosCallback()
{
echo 'hello yaf';
}
}
访问www.XXX.com/pay/iosCallback,则页面显示hello yaf
Penerangan masalah:
3 Tanya bagaimana yaf serasi dengan yii, dan akses www.XXX.com/pay/ios-callback, kemudian halaman akan memaparkan hello yaf
Nota: Pada masa ini, penyelesaian yang boleh saya fikirkan ialah menulis semula URL dalam lapisan Nginx, tetapi saya fikir ia bukan penyelesaian terbaik, jadi saya hanya akan membincangkan pelaksanaan lapisan PHP
習慣沉默2017-05-19 10:10:38
Selepas mengkaji kod sumber YII, akhirnya saya menemui peraturan untuk menulis semula penghalaan Kaedahnya adalah seperti berikut
.str_replace(' ', '', ucwords(str_replace('-', ' ', $action)))
Kaedah pelaksanaan adalah untuk memperkenalkan peraturan ini ke dalam routerShutdown yaf, supaya peraturan penghalaan boleh ditulis semula untuk mencapai tujuan memaparkan hello yaf apabila mengakses www.XXX.com/pay/ios-callback#🎜🎜 #
public function routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
$request->controller = str_replace(' ', '', ucwords(str_replace('-', ' ', $request->controller)));
$request->action = str_replace(' ', '', ucwords(str_replace('-', ' ', $request->action)));
}