在我的路线 slim 中调用两个函数
Calling two functions in my route slim
我在调用路线中的两个独立函数时遇到问题。我正在使用 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 函数,然后在使用两个单独的函数后调用更新数据库,只是为了让我的代码更清晰。
您可以将 Mailer
class 加载到 Slim's Dependency Container
然后将它们注入你的 routes/controllers。
首先将您的 Mailer
class 添加到 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');
我在调用路线中的两个独立函数时遇到问题。我正在使用 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 函数,然后在使用两个单独的函数后调用更新数据库,只是为了让我的代码更清晰。
您可以将 Mailer
class 加载到 Slim's Dependency Container
然后将它们注入你的 routes/controllers。
首先将您的 Mailer
class 添加到 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');