1. Go to this page and download the library: Download dunglas/action-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/ */
dunglas / action-bundle example snippets
// app/AppKernel.php
public function registerBundles()
{
return [
// ...
new Dunglas\ActionBundle\DunglasActionBundle(),
// ...
];
}
// src/AppBundle/Action/MyAction.php
namespace AppBundle\Action;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Routing\RouterInterface;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
class Homepage
{
private $router;
private $twig;
/**
* The action is automatically registered as a service and dependencies are autowired.
* Typehint any service you need, it will be automatically injected.
*/
public function __construct(RouterInterface $router, \Twig_Environment $twig)
{
$this->router = $router;
$this->twig = $twig;
}
/**
* @Route("/myaction", name="my_action")
*
* Using annotations is not mandatory, XML and YAML configuration files can be used instead.
* If you want to decouple your actions from the framework, don't use annotations.
*/
public function __invoke(Request $request)
{
if (!$request->isMethod('GET')) {
// Redirect to the current URL using the the GET method if it's not the current one
return new RedirectResponse($this->router->generateUrl('my_action'), 301);
}
return new Response($this->twig->render('mytemplate.html.twig'));
}
}
// MyMicroKernel.php
use AppBundle\Action\Homepage;
use Symfony\Bundle\FrameworkBundle\Kernel\MicroKernelTrait;
use Symfony\Component\Config\Loader\LoaderInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\HttpKernel\Kernel;
use Symfony\Component\Routing\RouteCollectionBuilder;
final class MyMicroKernel extends Kernel
{
use MicroKernelTrait;
public function registerBundles()
{
return [
new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
new Dunglas\ActionBundle\DunglasActionBundle(),
new AppBundle\AppBundle(),
];
}
protected function configureRoutes(RouteCollectionBuilder $routes)
{
// Specify explicitly the controller
$routes->add('/', Homepage::class, 'my_route');
// Alternatively, use @Route annotations
// $routes->import('@AppBundle/Action/', '/', 'annotation');
}
protected function configureContainer(ContainerBuilder $c, LoaderInterface $loader)
{
$c->loadFromExtension('framework', ['secret' => 'MySecretKey']);
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.