Форум → Программирование → PHP для идиотов → Нубские вопросы по Symfony 2
Нубские вопросы по Symfony 2
Страницы: ← Предыдущая страница • Следующая страница →
-
27 декабря 2011 г. 23:06, спустя 5 минут 11 секунд
а еще у нас есть djangodash. уже 2 года наблюдаю =) -
-
-
28 декабря 2011 г. 19:18, спустя 18 часов 4 минуты 30 секунд
как говориться "от нашего стола Вашему"
сравниваю джанго 1.x и симфони 2.x коробки.
Роутинг. Хотя еще компонент не идеален еще, но в том виде что сейчас роутинг, как минимум не уступает. Описание роута более гибкое чем в джанго.
Вот такое извращение я нашел что проверяет POST или GET это запрос, мега говнокод после симфони -# urls.py
from django.conf.urls.defaults import *
from mysite import views
urlpatterns = patterns('',
# …
(r'^somepage/$', views.some_page),
# …
)
# views.py
from django.http import Http404, HttpResponseRedirect
from django.shortcuts import render_to_response
def some_page(request):
if request.method == 'POST':
do_something_for_post()
return HttpResponseRedirect('/someurl/')
elif request.method == 'GET':
do_something_for_get()
return render_to_response('page.html')
else:
raise Http404()
Шаблонизатор. Не уступает по основной функциональности (наследование, фильтры, экстеншены, теги)
Генерация админки. Стандартного бандла для этого нету, но есть сторонняя разработка, которая работает по аналогичному принципу как джанговская.
Формы. Джанго подсасывает.
Кеширование. В стандартной поставке нету пока сравнимого по функционалу компонента, но есть бандл портированого Zend_Cache, и он по функциональности в некоторых моментах даже лучше джанговского.
Развертывание. Capifony и дело в шляпе.
Модель. В джанго смесь логики представления с моделями (Meta), Active Record (фу)
Конфигурирование более гибкое.
Интернационализацией не уступает как минимум.
Ну че вам там еще сравнить?
Теперь покажите хоть один сайт на джанго, что сделан по методологии DDD, я вообще сомневаюсь что сейчас там такое сделать возможно.
IoC, DI я даже не видел чтобы использовали.
Джангодрочеры зайдите на сайт документации симфони второй и уделите полчаса своего внимания поверхностной документации, чтобы понять что не такие уже у этого фреймворка плохи дела. За последние пол года очень много чего поменялось в мире PHP. Вот уже сейчас будет 5.4. Набирает популярность Meta программирование, AOP, кодогенерация. Причиной тому, что сейчас только это все появилось, есть то что вот буквально год-два последних в PHP усилились возможности в функциональности языка, чтобы такое наваять. Во всех гонках всегда есть лидирующий и догоняющий. В случае с джанго, этому способствовало стартовые возможности языка. Я уверен что скоро PHP в качестве и удобстве кодинга не будет уступать, если даже не опережать своих соперников. А почему столько говнокода много на php, в отличие от питона, я думаю вы и так знаете. -
28 декабря 2011 г. 19:22, спустя 4 минуты 28 секунд
Flare, прошелся по всем пунктам. не нашел ни одного обоснованного.Формы. Джанго подсасывает.
детский сад -
-
-
28 декабря 2011 г. 19:58, спустя 19 минут 39 секунд
Flare, аж прослезился) Ну чо, гопота, выкусили, да?) 3 на 2 теперь)) -
28 декабря 2011 г. 20:38, спустя 40 минут 20 секунд
def some_page(request):
if request.method == 'POST':
do_something_for_post()
return HttpResponseRedirect('/someurl/')
elif request.method == 'GET':
do_something_for_get()
return render_to_response('page.html')
else:
raise Http404()
Так может только пхпшник написать. Обычно POST-запросы используются совместно с формами. Вот пример:def post(request):
if request.method == 'POST':
form = PostForm(request.POST)
if form.is_valid():
form.save()
return redirect(reverse('posts_path'))
else:
form = PostForm()
return render(request, 'posts/add.html', {
'form': form,
})
Покажи мне, как это будет на симфониСпустя 60 сек.Flare, аж прослезился) Ну чо, гопота, выкусили, да?) 3 на 2 теперь))
Да хоть против 10. Меня защищает питон с кинжалом. -
-
-
28 декабря 2011 г. 20:57, спустя 3 минуты 45 секунд
не скажу за красоту, но оно логичнее. Здесь нет стремления написать на строку меньше кода -
28 декабря 2011 г. 20:57, спустя 32 секунды
public function newAction()
{
$post = new Post();
$form = $this->get('form.factory')->create(new PostType(), $post);
if ($this->get('request')->getMethod() == 'POST') {
$form->bindRequest($this->request);
if ($form->isValid()) {
$this->em->persist($post);
$this->em->flush();
return new RedirectResponse($this->generateUrl('posts_path'));
}
}
return $this->render('AcmeBlogBundle:Post:new.html.twig', array(
'form' => $form->createView(),
));
}
Это по аналогии с твоим кодом. Если проект большой, тогда логику по обработке формы можно выделить в отдельный класс. -
28 декабря 2011 г. 20:59, спустя 2 минуты 22 секунды
ткни пальцем, где оно есть в представленном мной коде.
не скажу за красоту, но оно логичнее. Здесь нет стремления написать на строку меньше кодаЭто по аналогии с твоим кодом. Если проект большой, тогда логику по обработке формы можно выделить в отдельный класс.
В джанге есть CBGV(https://docs.djangoproject.com/en/dev/topics/class-based-views/). -
28 декабря 2011 г. 21:14, спустя 14 минут 23 секунды
form.save()
почему форма себя сохраняет? почему вообще привязка именно к ней а не к модели пост/топик?form = PostForm(request.POST)
опять же, у вас форма выступает в роли модели. Мешанина.Спустя 58 сек.и каким макаром в эту вашу форму передается хранилище?
Страницы: ← Предыдущая страница • Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!