symfony Создание первой страницы, назначение маршрута

Полный текст

http://symfony.com/doc/current/page_crea...

Примечание

Т.е. добаляем такой вот контроллер:

// src/AppBundle/Controller/LuckyController.php
namespace AppBundle\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Component\HttpFoundation\Response;

class LuckyController
{
    /**
     * @Route("/lucky/number")
     */
    public function numberAction()
    {
        $number = mt_rand(0, 100);

        return new Response(
            '<html><body>Lucky number: '.$number.'</body></html>'
        );
    }
}

а папку:

src/AppBundle/Controller/

Скорее всего она будет доступна по ссылке вида:

http://имядомена/web/app_dev.php/lucky/number

Далее предлагается применить отдельное view (а не выводить прямо из контроллера) с использованием шаблона твиг.

Я добавил для этого второй метод в контроллер:

<?php

// src/AppBundle/Controller/LuckyController.php
namespace AppBundle\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Bundle\FrameworkBundle\Controller\Controller; // этот класс контроллера с render()

class LuckyController extends Controller
{
    /**
     * @Route("/lucky/number")
     */
    public function numberAction()
    {
        $number = mt_rand(0, 100);

        return new Response(
            '<html><body>Счастливый номер: '.$number.'</body></html>'
        );
    }
    
    /**
     * @Route("/lucky/number2")
     */
    public function number2Action()
    {
        $number = mt_rand(0, 100);

        return $this->render('lucky/number.html.twig', array(
            'number' => $number,
        ));
    }
}

(файл представления как и в документации).

Далее расматривается структура проекта
и понятие бандла.

Key Words for FKN + antitotal forum (CS VSU):

melisa's picture

Здесь, получается namespace файла не совпадает с его расположением в папках?, иначе было бы

src/AppBundle/Controller/LuckyController.php
vedro-compota's picture

дело в том, что существует, базовая директория для загрузки префикса. -- таких директорий может быть много разных, для разных префиксов.

_____________
матфак вгу и остальная классика =)

melisa's picture

А где она определяется, например, в Symfony?

vedro-compota's picture

там. где:

  1. осуществляется автозагрузка стандарных классов (ищи файлы типа autoload.php и смотри их связи)
  2. любой пакет из композера (в том числе и стандартные бандлы симфони) может назначить себе базовую директорию внутри папки vendor, пример такой возможности тут: http://fkn.ktu10.com/?q=node/9201 -- механзим же осуществления автозагрузки путём директорив в composer.json можно изучить, просматривая исходный код файлов автозагрузки, генерируемых композером, чем я и занимался, когда искал ошибку в своей конфигурации для пакета it-for-free/php-examples

_____________
матфак вгу и остальная классика =)