PROGRAMMING

  minte9
learningjourney




R Q

Symfony

Version: Symfony v5.2 Fundamentals: Route, Controller, Response, Annotation Requirements: Composer, Apache, PHP v8.0
  copy
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
  copy
index:
    path: /
    controller: App\Controller\DefaultController::index

hello:
    path: /hello/{name}
    controller: App\Controller\DefaultController::hello
  copy
// 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!");
    }
}
  copy
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

Annotations

By using annotations, the route and controller live right next to each other No need for config/routes.yaml anymore.
  copy
 composer require annotations
  copy
// 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! 

Questions    
Last update: 435 days ago
Frameworks, Laravel V8