За последние 24 часа нас посетили 55737 программистов и 1776 роботов. Сейчас ищут 1078 программистов ...

symfony 2

Тема в разделе "Прочие вопросы по PHP", создана пользователем amir_Mirov, 10 май 2015.

  1. amir_Mirov

    amir_Mirov Новичок

    С нами с:
    25 сен 2014
    Сообщения:
    90
    Симпатии:
    0
    Всем доброго времени суток ув форумчани.
    установил sf2 все работает норм. чтение документаций не дает мне не какого понятия. как написать hello world
    в какую папку ставить контроллер и как его вызвать через браузер и где там роутинг прописывается
     
  2. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    ну конечно это не по теме, а почему именно symfony 2?
     
  3. amir_Mirov

    amir_Mirov Новичок

    С нами с:
    25 сен 2014
    Сообщения:
    90
    Симпатии:
    0
    изначально выбор был между laravel 5 yii2 symfony2
    я решил начать с symfony 2 посмотрю как на нем будит написанн hello world если что то не устроит laravel 5 попробую
    до работал на codeignetr . я в последние время часто сталкиваюсь с критикой его поэтому решил попробывать что то еше
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  5. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Симфони слишком суровая штука, что бы начинать с него. Лучше начать с laravel, а потом при необходимости переквалифицироваться. Учитывая, что у ларки под капотом половина симфони запрятана уже будет понимание основных моментов.
     
  6. amir_Mirov

    amir_Mirov Новичок

    С нами с:
    25 сен 2014
    Сообщения:
    90
    Симпатии:
    0
    да в туре был. вся суть проблемы что я работаю на windows и работа в консоле изначально меня очень сбила . сейчас дошел до создания бандла создал все ок. уперся в роутинг. я не понимаю как быть пправить фаил routing.yml или как то через консоль делать .
    создал я бандл где теперь и как прописать чтобы я получил доступ к контроллеру в моем бандле
     
  7. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Если у тебя не аннотации, то правь routing.yml, в документации есть примеры, просто переключи на YAML пример,
    http://symfony.com/doc/current/book/routing.html#adding-requirements

    Что конкретно не понятно? Как писать путь до своего контроллера?
    Код (PHP):
    1. blog:
    2.     path:      /blog
    3.     defaults:  { _controller: AppBundle:Blog:index }
    Под windows лучше установить в виртуальную машину(vmware player бесплатный) turnkeylinux образ с apache, php, mysql, ssh тогда и консоль будет через putty удобная.
     
  8. amir_Mirov

    amir_Mirov Новичок

    С нами с:
    25 сен 2014
    Сообщения:
    90
    Симпатии:
    0
    Создаю новый бандл
    Код (Text):
    1. php app/console generate:bundle --namespace=test/HelloBundle --format=yml
    получаю такой путь до контроллера
    Код (Text):
    1. W:\openserver\domains\symfony2.loc\src\test\HelloBundle\Controller
    2. и имя самого контроллера:DefaultController.php
    3. код внутри:
    4. <?php
    5.  
    6. namespace test\HelloBundle\Controller;
    7.  
    8. use Symfony\Bundle\FrameworkBundle\Controller\Controller;
    9.  
    10. class DefaultController extends Controller
    11. {
    12.     public function indexAction($name)
    13.     {
    14.       ECHO "heLLO WORLD!!!!";
    15.         return $this->render('testHelloBundle:Default:index.html.twig', array('name' => $name));
    16.     }
    17. }
    дальше файл routing.yml
    Код (Text):
    1. Адресс:W:\openserver\domains\symfony2.loc\src\test\HelloBundle\Resources\config
    2. с таким кодом
    3. test_hello_homepage:
    4.     path:     /hello/{name}
    5.     defaults: { _controller: testHelloBundle:Default:index }
    6.    
    и суть проблемы в том что я не понимаю что прописать в роутинге чтобы получить вызов hello world

    Добавлено спустя 44 секунды:
    именно это и не могу понять
     
  9. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Надо проверить, но test лучше чтобы был с большой буквы
    http://symfony.com/doc/current/cookbook/bundles/best_practices.html

    Acme\BlogBundle -> AcmeBlogBundle

    У тебя ошибку выдаёт? Или не находит что-то?

    У тебя в Default:index есть аргумент $name?

    Лучше зарегистрируй бесплатный сервер на heroku и на нём играйся с symfony2
     
  10. amir_Mirov

    amir_Mirov Новичок

    С нами с:
    25 сен 2014
    Сообщения:
    90
    Симпатии:
    0
    да ошибка FileLoaderLoadException in FileLoader.php line 120:.
    ну это наверное я чет не так зделал. завтра еше посмотрю .
    спс большое что подсказали
     
  11. amir_Mirov

    amir_Mirov Новичок

    С нами с:
    25 сен 2014
    Сообщения:
    90
    Симпатии:
    0
    Зделал бандл
    Код (Text):
    1.  
    2. namespace Demos\BlogBundle\Controller;
    3.  
    4. use Symfony\Bundle\FrameworkBundle\Controller\Controller;
    5. use Demos\BlogBundle\Entity\Post;
    6. use Symfony\Component\HttpFoundation\Response;
    7.  
    8. class DefaultController extends Controller
    9. {
    10.     public function indexAction($name)
    11.     {
    12.    
    13.         return $this->render('DemosBlogBundle:Default:index.html.twig', array('name' => $name));
    14.     }
    15.     /**
    16.     * @Route("/create")
    17.     */
    18.     public function createAction() {
    19.     $post = new Post();
    20.     $post->setTitle('Demo Blog');
    21.     $post->setBody('Hello Symfony 2');
    22.     $post->setCreatedDate(new \DateTime("now"));
    23.     $post->setUpdatedDate(new \DateTime('now'));
    24.  
    25.     $em = $this->getDoctrine()->getEntityManager();
    26.     $em->persist($post);
    27.     $em->flush();
    28.  
    29.     return new Response('Created product id ' . $post->getId());
    30.     }
    31. }
    роутинг:
    Код (Text):
    1. demos_blog_homepage:
    2.     path:     /hello/{name}
    3.     defaults: { _controller: DemosBlogBundle:Default:index }
    symfony2.loc/web/app_dev.php/hello по вызыву получаю вывод function indexAction($name)
    как теперь настроить дополнительный роут для вызыва функций function createAction()
     
  12. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    а что это значит DemosBlogBundle:Default:index ? Распиши
     
  13. amir_Mirov

    amir_Mirov Новичок

    С нами с:
    25 сен 2014
    Сообщения:
    90
    Симпатии:
    0
    Demos/BlogBundle/ папки до дефаулт контроллера
     
  14. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Default:index - а это что?
     
  15. amir_Mirov

    amir_Mirov Новичок

    С нами с:
    25 сен 2014
    Сообщения:
    90
    Симпатии:
    0
    я пологаю default это имя деф контроллера а index это функция выполняющаяся при запуске клаасса без определения функций

    Добавлено спустя 9 минут 32 секунды:
    Да и по большому счету вопрос наверное будит одрессован всем. задача фреимворка любого это ускарение разработки. это долго работающий код - думаю с этим будут согласны все.
    читая доки лары yii symfony . все уперается в composer все втыкается в githab - попахивает попыткой какой то монополий.
    по большому счету чем былобы не проще например готовую библиотеку просто скачать с сайта предварительно просмотрев ее.
    почему все скачивается через консоль команды. все словно скрыто закрыто . много конечно можно развить вопросов. я пологаю гуру понимают всю суть этой шараш конторы. и хотелось бы просто напудствия опытного человека. я немного напутался и пытаюсь найти путь истинный взываю к вам укажите мне дорогу....
    я не учился в вузе ( как мое любимое дело начнет приносить мне монетки то первым делом я постораюсь от учится )
    следуя научить правильным весчам можете только вы...
    p s немного накипело прошу понять глубокий смысл )) моих слов не русских

    Добавлено спустя 11 минут 31 секунду:
    вопрос решон
    спс огромное denis01 за помощь
    проблема была :
    Код (Text):
    1. /**
    2.     * @Route("/create")
    3.     */
    и роутинг:
    Код (Text):
    1. demos_blog_homepage:
    2.     path:     /hello/{name}
    3.     defaults: { _controller: DemosBlogBundle:Default:index }
    4. demos_blog_create:
    5.     path:     /create
    6.     defaults: { _controller: DemosBlogBundle:Default:create }
     
  16. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    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 делать.
     
  17. amir_Mirov

    amir_Mirov Новичок

    С нами с:
    25 сен 2014
    Сообщения:
    90
    Симпатии:
    0
    спасибо вам большое. потихоньку буду переходить на люникс.
    и еще вопрос. работаю с codeigneter все удобно привык что то переписанно в целом он мне понятен. много разговоров о том что он устарел - да мб и устарел хотя был релиз 3 версий.много ли я потеряю если продолжу работу на нем и свободное время потрачу на изучение самого языка php . вместо пользывания фреимворком. и пусть будит свой добрый перепиленный codeigneter вить дело савсем не в фреимворке больше завист от умения использования. ну и естественно задачи . я считаю ci не хуже справится с трафиком интернет магазина чем symfony2
     
  18. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Главное чтобы если делаешь что-то серьёзное, то для твоих программ выходили обновления безопасности, и если всё работает то нет смысла трогать, вот например версия symfony2.3 имеет долгую поддержку до 05.2016 править баги и до 05.2017 обновление безопасности.
    Про git или аналоги прочитай.
     
  19. amir_Mirov

    amir_Mirov Новичок

    С нами с:
    25 сен 2014
    Сообщения:
    90
    Симпатии:
    0
    хорошо. огромное спасибо.