1. Go to this page and download the library: Download mediagone/symfony-powerpack 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/ */
mediagone / symfony-powerpack example snippets
final class LowercaseString
{
private string $value;
public function getValue() : string
{
return $this->value;
}
public function __construct(string $value)
{
$this->value = strtolower($value);
}
}
use Mediagone\Symfony\PowerPack\Converters\Primitives\StringParam;
use Symfony\Component\Routing\Annotation\Route;
final class SearchController
{
/**
* @Route("/search", name="app_search")
*/
public function __invoke(LowercaseString $searched): Response
{
// Return search results...
}
}
final class LowercaseStringParamConverter extends ValueParamConverter
{
public function __construct()
{
$resolvers = [
'' => static function(string $value) {
return new LowercaseString($value);
},
];
parent::__construct(LowercaseString::class, $resolvers);
}
}
use App\Entity\User;
final class StringParamConverter extends ValueParamConverter
{
public function __construct(UserRepository $userRepository)
{
$resolvers = [
'Id' => static function(string $value) use($userRepository) : ?User {
return $userRepository->findById($value);
},
'Name' => static function(string $value) use($userRepository) : ?User {
return $userRepository->findByName($value);
},
];
parent::__construct(User::class, $resolvers);
}
}
use App\Entity\User;
use Symfony\Component\Routing\Annotation\Route;
final class ShowUserController
{
/**
* @Route("/users/{userId}", name="app_user_show")
*/
public function __invoke(User $user): Response
{
// Return response...
}
}
public function __invoke(?User $user): Response
{
if ($user === null) {
// do something...
}
}
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
use Symfony\Component\Routing\Annotation\Route;
/**
* @Route('/api/search/{name}')
* @ParamConverter("name", options={"convertResolverExceptionsToNull": true})
*/
public function __invoke(?LowercaseString $name): Response
{
if ($name === null) {
return new JsonResponse(['error' => 'Invalid or missing value for `$name` parameter.']);
}
...
}
// Request URL: /do-something?data=23&options=1,1,0
public function __invoke(IntParam $data, BoolArrayParam $options): Response
{
$data->getValue(); // 23
foreach ($options->getValue() as $option) {
// ...
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.