我遇到一个问题,在我的路线中调用两个单独的功能。我正在使用PSR-r自动加载并创建了我自己的命名空间。 请参阅以下代码,其中包含两个
<?php
namespace App\Controllers;
use PHPMailer;
class Mailer {
public function sendMail($request, $response)
{
echo "walking up the hill walking up the hill";
}
public function updateDB($request, $response) {
echo "Sending message sending message";
}
}
我有这两个功能,我想一个接一个地在我的路线上打电话给他们。我怎样才能做到这一点。
请参阅下面的路线,如何调用这些功能?
$app->post('/confirm', function($request, $response) {
//sendMail
//updateDB
})->setName('usersend');
我想首先调用sendmail函数,然后使用两个单独的函数调用更新数据库,以保持代码清洁。
答案 0 :(得分:1)
您可以将Mailer
课程加载到Slim's Dependency Container
然后将它们注入您的路由/控制器。
首先将您的Mailer
类添加到Container
$container = $app->getContainer();
$container['Mailer'] = function ($container) {
return new Mailer();
};
然后你可以在你的路线中使用它:
$app->post('/confirm', function($request, $response) {
$mailer = $this->get('Mailer');
echo $mailer->sendMail();
echo $mailer->updateDB();
})->setName('usersend');