minte9
LearnRemember



Symfony

Version: Symfony v5.2 Fundamentals: Route, Controller, Response, Annotation Requirements: Composer, Apache, PHP v8.0
 
cd /var/www/tests.local/php/symfony/

composer create-project symfony/skeleton myproject
 
http://tests.local/php/symfony/myproject/public/
    # Welcome page Symfony
Add routes in config/routes.yaml Add default controller and /myproject/.htaccess
 
index:
    path: /
    controller: App\Controller\DefaultController::index

hello:
    path: /hello/{name}
    controller: App\Controller\DefaultController::hello
 
// src/Controller/DefaultController.php

namespace App\Controller;

use Symfony\Component\HttpFoundation\Response;

class DefaultController
{
    public function index()
    {
        return new Response("Hello World!");
    }

    public function hello($name)
    {
        return new Response("Hello $name!");
    }
}
 
RewriteEngine on
RewriteBase /php/symfony/myproject/public/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [L,QSA]
It works!
 
http://tests.local/php/symfony/myproject/public/
    # Hello World!

http://tests.local/php/symfony/myproject/public/hello/Symfony
    # Hello Symfony! 

Annotations

By using annotations, the route and controller live right next to each other No need for config/routes.yaml anymore.
 
 composer require annotations
 
// src/Controller/DefaultController.php

namespace App\Controller;

use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;

class DefaultController
{
    /**
     * @Route("/")
     */
    public function index()
    {
        return new Response("Hello World!");
    }

    /**
     * @Route("/hello/{name}")
     */
    public function hello($name)
    {
        return new Response("Hello $name!");
    }
}
 
http://tests.local/php/symfony/myproject/public/
    # Hello World!

http://tests.local/php/symfony/myproject/public/hello/Symfony
    # Hello Symfony! 



  Last update: 450 days ago