PHP code example of xiifactors / azure-functions-bundle
1. Go to this page and download the library: Download xiifactors/azure-functions-bundle library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
xiifactors / azure-functions-bundle example snippets
// src/Controller/HealthController.php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use XIIFactors\AzureFunctions\Dto\ResponseDto;
#[
Route(
path: '/api/health',
name: 'myapp.health',
defaults: ['_format' => 'json'],
methods: ['GET'],
)
]
class HealthController extends AbstractController
{
public function __invoke(): Response
{
return new JsonResponse(new ResponseDto(
ReturnValue: json_encode([
'success' => true,
])
));
}
}
// src/Controller/ExampleController.php
namespace App\Controller;
use Psr\Log\LoggerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use XIIFactors\AzureFunctions\Dto\ResponseDto;
#[
Route(
path: '/api/example',
name: 'myapp.output_example',
defaults: ['_format' => 'json'],
methods: ['POST'],
)
]
class ExampleController extends AbstractController
{
public function __invoke(): Response
{
return new JsonResponse(new ResponseDto(
// Sends the message to the "example" queue via the "exampleItem" output binding
Outputs: ['exampleItem' => json_encode(['subject' => 'example'])],
ReturnValue: json_encode([
'success' => true,
])
));
}
}
// src/Controller/QueueFunctionController.php
namespace App\Controller;
use RuntimeException;
use Psr\Log\LoggerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Attribute\MapRequestPayload;
use Symfony\Component\Routing\Annotation\Route;
use XIIFactors\AzureFunctions\Dto\RequestDto;
use XIIFactors\AzureFunctions\Dto\ResponseDto;
#[
Route(
path: '/QueueFunction',
name: 'myapp.input_example',
defaults: ['_format' => 'json'],
methods: ['POST'],
)
]
class QueueFunctionController extends AbstractController
{
public function __invoke(#[MapRequestPayload] RequestDto $rd): Response
{
// Grab the queue item
$queueItem = $rd->Data['exampleItem'] ?? throw new RuntimeException('Queue item is missing');
// Do something with queue item...
$decoded = json_decode($queueItem, true);
// Write queue item to blob storage
return new JsonResponse(new ResponseDto(
Outputs: ['outputBlob' => $queueItem]
));
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.