Pull to refresh

symfony — первое знакомство, рассуждения и впечатления.

Reading time3 min
Views342
Сегодня хочу рассказать Вам о своем недавно состоявшемся первом знакомстве с фреймворком symfony.

Так как до этого я в течение длительного срока (около полутора лет) разрабатывал свои приложения на Zend Framework'е — мне есть с чем сравнивать.

Во первых, сразу хотелось бы отметить, что документация у этого фреймворка скудная (нет, я не говорю про отсутствие таковой на русском язык, хотя это тоже особо не радует, я говорю о том, что родная документация на сайте проекта очень не полная. Это естественно я отнесу к категории «минусы».

Но, скажем так — нет ничего невозможного. И поковырявшись (пусть подольше, но все же) можно докапаться до истины (хотя насколько эта истина правильна, оптимальна и т.д. — неизвестно, т.к. вокруг меня к сожалению нет ни одного знакомого программиста, который бы использовал для разработки symfony).

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

И так — локализация


Скажем есть у нас шаблон indexSuccess.php (тем кто все еще не знает, что symfony построен на модели MVC, прошу почитать хотя бы немного об этом фреймворке по ссылкам приведенным мной выше). Так вот, в этом шаблоне мы пишем на нашем default'ном языке (языке по умолчанию), пусть это будет английский — коль он признан международным.
<?php echo __('Hello world!', null, 'general'); ?>

В свою очередь в стуктуре директорий проекта существует такая директория, как i18n (сокращение от internationlisation. Где число 18 — есть ничто иное, как количество букв межд «i» и «n»). В данной директории создадется файл (создается ручками) general.ru.xml, в который и будет складыватся, как вы уже догадались, русский перевод. Вот пример:
image
(простите за картинку вместо текста, но нет моих больше сил бороться с хабрапарсером)

Как вы смогли догадатся при переключении культуры пользователя (проще говоря при смена языка) symfony парсит xml'ный файлик general.ru.xml на наличие перевода для каждой фразы.

В целом мне нравится такой подход… тем более когда процессорные xml парсеры не за горами. Все это работает действительно быстро (при относительно не большом количестве статичного текста, больше я пока не пробовал).


Опробовал я и «их» хелпер для построение форм. Могу сказать, что довольно не затейливо и первое мое впечатление, что сложные формы построить будет довольно таки не просто (второго впечатления пока нет, т.к. глубже не вникал).

Form Helper


Использовать его довольно таки просто, наверное легче показать на примере нежели объяснять:
<?php echo form_tag('post.php'); ?>

Соответственно данная функция возвращает:

(хватило бы терпения одалеть хабрапарсер)

Что очень интерестно — закрывать тег придется все же собственноручно. Тоже самое и с остальными input'ами, select'ами и прочим:
<?php echo form_tag($moduleName . '/' . $actionName . '?step=third'); ?>
<?php $cityOptions[0] = __('Other city', null, 'registration'); ?>
<?php echo select_tag('city', $cityOptions); ?>
<?php echo __('If you city out of this list - type city name here', null, 'registration'); ?>:
<?php echo input_tag('alternativeCity'); ?>
<?php echo submit_tag(__('Continue', null, 'registration')) ?>

Начинается все с <?php потому что между ними есть html-вставки, которые я сюда постить не стал.

Да, да… я думаю вы догадались, о чем я хочу продолжить — о некозистости шаблона в таком виде. Пожалуй это я отнесу опять же к категории «минусы». Могу Вам представить скрин шаблона одной очень маленькой странички и вы поразитесь, насколько он трудночитаем:

Вы скажите: «Так не используй такие хелперы!», но я отвечу тем, что знаю данный фреймворк очень и очень плохо, поэтому пока следую советам из официальной документации, не рискуя эксперементировать самостоятельно.

В заключение скажу, что на данном этапе, на котором я знаю этот фреймворк очень плохо, он мне совсем не по душе. Но буду надеятся на лучшее…

P.S. И да… почему я использую этот фреймворк? Потому что на новой работе попросили использовать именно его и по результатам естественно доложить о его годности.

P.P.S. Я никого не хочу обижать, если я где-то не прав — поправьте, я всего лишь второй день работаю с этим фреймворком и высказываю свое сложившееся впечатление.
Tags:
Hubs:
Total votes 141: ↑108 and ↓33+75
Comments234

Articles