Всем доброго времени суток ув форумчани. установил sf2 все работает норм. чтение документаций не дает мне не какого понятия. как написать hello world в какую папку ставить контроллер и как его вызвать через браузер и где там роутинг прописывается
изначально выбор был между laravel 5 yii2 symfony2 я решил начать с symfony 2 посмотрю как на нем будит написанн hello world если что то не устроит laravel 5 попробую до работал на codeignetr . я в последние время часто сталкиваюсь с критикой его поэтому решил попробывать что то еше
Симфони слишком суровая штука, что бы начинать с него. Лучше начать с laravel, а потом при необходимости переквалифицироваться. Учитывая, что у ларки под капотом половина симфони запрятана уже будет понимание основных моментов.
да в туре был. вся суть проблемы что я работаю на windows и работа в консоле изначально меня очень сбила . сейчас дошел до создания бандла создал все ок. уперся в роутинг. я не понимаю как быть пправить фаил routing.yml или как то через консоль делать . создал я бандл где теперь и как прописать чтобы я получил доступ к контроллеру в моем бандле
Если у тебя не аннотации, то правь routing.yml, в документации есть примеры, просто переключи на YAML пример, http://symfony.com/doc/current/book/routing.html#adding-requirements Что конкретно не понятно? Как писать путь до своего контроллера? Код (PHP): blog: path: /blog defaults: { _controller: AppBundle:Blog:index } Под windows лучше установить в виртуальную машину(vmware player бесплатный) turnkeylinux образ с apache, php, mysql, ssh тогда и консоль будет через putty удобная.
Создаю новый бандл Код (Text): php app/console generate:bundle --namespace=test/HelloBundle --format=yml получаю такой путь до контроллера Код (Text): W:\openserver\domains\symfony2.loc\src\test\HelloBundle\Controller и имя самого контроллера:DefaultController.php код внутри: <?php namespace test\HelloBundle\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; class DefaultController extends Controller { public function indexAction($name) { ECHO "heLLO WORLD!!!!"; return $this->render('testHelloBundle:Default:index.html.twig', array('name' => $name)); } } дальше файл routing.yml Код (Text): Адресс:W:\openserver\domains\symfony2.loc\src\test\HelloBundle\Resources\config с таким кодом test_hello_homepage: path: /hello/{name} defaults: { _controller: testHelloBundle:Default:index } и суть проблемы в том что я не понимаю что прописать в роутинге чтобы получить вызов hello world Добавлено спустя 44 секунды: именно это и не могу понять
Надо проверить, но test лучше чтобы был с большой буквы http://symfony.com/doc/current/cookbook/bundles/best_practices.html Acme\BlogBundle -> AcmeBlogBundle У тебя ошибку выдаёт? Или не находит что-то? У тебя в Default:index есть аргумент $name? Лучше зарегистрируй бесплатный сервер на heroku и на нём играйся с symfony2
да ошибка FileLoaderLoadException in FileLoader.php line 120:. ну это наверное я чет не так зделал. завтра еше посмотрю . спс большое что подсказали
Зделал бандл Код (Text): namespace Demos\BlogBundle\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Demos\BlogBundle\Entity\Post; use Symfony\Component\HttpFoundation\Response; class DefaultController extends Controller { public function indexAction($name) { return $this->render('DemosBlogBundle:Default:index.html.twig', array('name' => $name)); } /** * @Route("/create") */ public function createAction() { $post = new Post(); $post->setTitle('Demo Blog'); $post->setBody('Hello Symfony 2'); $post->setCreatedDate(new \DateTime("now")); $post->setUpdatedDate(new \DateTime('now')); $em = $this->getDoctrine()->getEntityManager(); $em->persist($post); $em->flush(); return new Response('Created product id ' . $post->getId()); } } роутинг: Код (Text): demos_blog_homepage: path: /hello/{name} defaults: { _controller: DemosBlogBundle:Default:index } symfony2.loc/web/app_dev.php/hello по вызыву получаю вывод function indexAction($name) как теперь настроить дополнительный роут для вызыва функций function createAction()
я пологаю default это имя деф контроллера а index это функция выполняющаяся при запуске клаасса без определения функций Добавлено спустя 9 минут 32 секунды: Да и по большому счету вопрос наверное будит одрессован всем. задача фреимворка любого это ускарение разработки. это долго работающий код - думаю с этим будут согласны все. читая доки лары yii symfony . все уперается в composer все втыкается в githab - попахивает попыткой какой то монополий. по большому счету чем былобы не проще например готовую библиотеку просто скачать с сайта предварительно просмотрев ее. почему все скачивается через консоль команды. все словно скрыто закрыто . много конечно можно развить вопросов. я пологаю гуру понимают всю суть этой шараш конторы. и хотелось бы просто напудствия опытного человека. я немного напутался и пытаюсь найти путь истинный взываю к вам укажите мне дорогу.... я не учился в вузе ( как мое любимое дело начнет приносить мне монетки то первым делом я постораюсь от учится ) следуя научить правильным весчам можете только вы... p s немного накипело прошу понять глубокий смысл )) моих слов не русских Добавлено спустя 11 минут 31 секунду: вопрос решон спс огромное denis01 за помощь проблема была : Код (Text): /** * @Route("/create") */ и роутинг: Код (Text): demos_blog_homepage: path: /hello/{name} defaults: { _controller: DemosBlogBundle:Default:index } demos_blog_create: path: /create defaults: { _controller: DemosBlogBundle:Default:create }
composer, symfony2 installer, github всё это для удобства, быстрого обновления symfony2 всегда можно скачать с их официального репозитория https://github.com/symfony/symfony/tree/2.3 используя git не обязательно использовать guthub или аналоги, можно и не использовать git и по старинке делать копию папок и файлов или вообще этого не делать composer помогает делать авто загрузку классов, обновлять библиотеки и скачивать зависимости, https://github.com/php-fig/fig-standards/blob/master/accept ... xamples.md сейчас и на хостингах есть ssh доступ к консоли, и она может быть удобнее чем GUI. Никто не мешает просто скачать symfony2 и настроить всё самому без консоли, ну ещё раз повторю, лучше всё в Linux делать.
спасибо вам большое. потихоньку буду переходить на люникс. и еще вопрос. работаю с codeigneter все удобно привык что то переписанно в целом он мне понятен. много разговоров о том что он устарел - да мб и устарел хотя был релиз 3 версий.много ли я потеряю если продолжу работу на нем и свободное время потрачу на изучение самого языка php . вместо пользывания фреимворком. и пусть будит свой добрый перепиленный codeigneter вить дело савсем не в фреимворке больше завист от умения использования. ну и естественно задачи . я считаю ci не хуже справится с трафиком интернет магазина чем symfony2
Главное чтобы если делаешь что-то серьёзное, то для твоих программ выходили обновления безопасности, и если всё работает то нет смысла трогать, вот например версия symfony2.3 имеет долгую поддержку до 05.2016 править баги и до 05.2017 обновление безопасности. Про git или аналоги прочитай.