hell0w0rd
@hell0w0rd
Просто разработчик

Как создать Symfony2 приложение?

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

Как я понял в symfony есть такая сущность, как приложение, есть бандлы, компоненты.

Если представить обычный сайт — есть два приложения — админка + сайт.

Бандлы пока не трогаем, компоненты — нужно создать как раз приложение, есть компонент — консоль. Однако как им пользоваться, если не установлено приложение? Неужели нельзя руками собрать, без symfony/framework-standard-edition?

Если же нужно создавать именно так — как правильно создать два приложения, чтобы они не конфликтовали + дважды не скачивался symfony.

Сейчас composer.json выглядит так:

{<br>
    "require" : {<br>
        "php"                : ">=5.3.3",<br>
        "symfony/symfony"    : ">=2.2",<br>
        "twig/twig"          : ">=1.8"<br>
    },<br>
    "minimum-stability": "dev",<br>
    "extra": {<br>
        "symfony-app-dir": "app",<br>
        "symfony-web-dir": "web",<br>
        "symfony-assets-install": "symlink"<br>
    }<br>
}<br>


Также вопрос по маршрутизации, до чтения документации у меня было представление, что все страницы лежат в базе, указано по какому маршруту они доступны, то есть /contacts или /catalog и указан тип страницы — материал (contacts) или модуль (users или catalog). Если модуль — дальнейшая генерация передается на модуль. Здесь же вся маршрутизация прописывается в yaml/xml/php — отсюда вопрос, ломать представление о логике маршрутизации, или есть возможность реализовать динамически?.. Основной вопрос — как редактировать symfony-style маршрутизацию из админки конечному юзеру.
  • Вопрос задан
  • 4864 просмотра
Пригласить эксперта
Ответы на вопрос 2
slimus
@slimus
Symfony, Golang
Кажется у вас путаница в определениях. Админка+сайт это все к одной базе обращается? Если так — делайте 2 бандла (Acme\AdminBundle, Acme\SiteBundle) и разносите логику там.
По-поводу маршрутов тоже не совсем понятен вопрос. Хотите хранить в базе — пожалуйста. В симфони 2.х есть файлы роутинга где все пути прописаны. В простейшем случае будет достаточно там описать.
Ответ написан
sHinE
@sHinE
веб-разработчик, php/js/mysql и сопутствующее
Не на все вопросы, конечно, ответ но всё-таки.
Бандл — это часть системы, которую можно взять и целиком перенести на другой сайт. Т.е. какая-то достаточно изолированная функциональность — типа как на knpbundles.com Поэтому сайт может быть вообще одним бандлом, если у вас админка самописаня, а не на каком-то бандле-генераторе.
По поводу роутинга — тут вам важно понять, что роуты указывают не напрямую на страницы в базе, а на контроллеры, которые уже могут что-то брать из базы, а могут и нет. Отвечая на ваш вопрос касательно динамически задаваемых роутов пользователем — можно: контроллер будет ловить все после / и по этому значению определять, что надо выводить из базы.
Не могу сказать про актуальность на текущий момент (хотя вряд ли что-то принципиально поменялось) — есть вот такой туториал на английском tutorial.symblog.co.uk/ по созданию блога.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы