2013-09-28 3 views
7

Я видел много людей, пытающихся использовать FOSUserBundle.FOSUserBundle: в чем смысл?

Я боролся с этим в течение 6 часов. Просто чтобы создать пользовательскую регистрационную форму. Основная документация составляет 6 страниц: basic. Вот все недостатки использования FOSUserBundle, с моей точки зрения:

  • вы должны копировать вставить свои взгляды, чтобы сделать наследование возможного
  • они имеют свои собственные таблицу в базе данных: fos_user. Таким образом, вы должны основывать весь свой код на своем объекте user, который имеет дочерний элемент BaseUser. Если ваша база данных соответствует соглашению (например, wordpress делает, со всеми таблицами, начинающимися с wp_), это нарушает ваше соглашение.
  • Вы должны взломать все свои собственные взгляды такими вещами, как «если блок fos_user_content пуст, я полагаю, что ничего не видно, иначе мне нужно повторно организовать весь мой просмотр, чтобы отобразить блок fos_user_content (регистрация, изменение профиля пользователя и и так далее) «
  • и теперь я вижу, что если вам нужны две разные формы регистрации (например, одна для клиента, одна для партнеров), это невозможно, если вы не взломали. См. here.

Так что мне просто интересно: в чем смысл использования, если FOSUserBundle? Если я уже сделал процесс регистрации, который следует самым основным вещам, описанным в помощи Symfony (формы, проверка формы и сеансы), и я просто скопирую вставку моего кода, это, с моей точки зрения, намного быстрее, чем установка , настройка, наследование, изменение и т. д. FOSUserBundle.

Зная, что я сделал, каковы преимущества FOSUserBundle? Что может заставить меня измениться и занять еще несколько часов, чтобы он работал с моим проектом, вместо повторного использования моего (формы, проверки формы и сеансов) из другого проекта?

+2

Процесс реализации всех возможностей, которые необходимо должна быть быстрее с FOSUserBundle. Если вы можете сделать это быстрее и лучше другим способом, не используйте его. – nni6

+0

Я ударился головой о стену, чтобы заставить ее работать с PUGXMultiUserBundle, потому что это должно помочь мне с несколькими пользователями. Мне удалось настроить все, и теперь, OMG, после того, как мне удалось отобразить две разные формы регистрации, когда я отправляю сообщение с одним или с другим, я получаю совершенно непонятную ошибку: из того, что я могу понять, доктрина пытается сделать присоединяться без таблицы "**' t0' ** ": –

+0

(следующее)' Исключение произошло при выполнении 'SELECT t1.username AS username2, t1.username_canonical AS username_canonical3, t1.email AS email4, t1.email_canonical AS email_canonical5, t1.enabled AS enabled6, t1.salt AS salt7, t1.password AS password8, [... snap ...] FROM person_teacher t1 WHERE t0.username_canonical =? ' с параметрами ["[email protected]"]: SQLSTATE [42S22]: Столбец не найден: 1054 Неизвестный столбец 't0.username_canonical' в 'where clause''. –

ответ

3

Ну, ваш вопрос звучит скорее как напыщенная речь, но у вас есть некоторые моменты.

На мой взгляд, основная проблема FOSUserBundle, а также множество пакетов в сообществе - это то, что они пытаются сделать его настраиваемым, универсальным, повторно используемым, что угодно.

Целью является справедливая, но на самом деле она часто приводит к не подходит для человека код. В большинстве случаев вам потребуется гораздо больше времени, чтобы «сделать это», используя сообщество, вместо того, чтобы создавать свои собственные (см. Пакеты Sonata).

Я не говорю, что они плохие связки, совсем нет, но они заслуживают различного назначения.

Для меня такие пучков могут помочь новичкам иметь быструю реализацию, чтобы получить вещи сделаны, а в случае развития Rapid Application, это может быть очень легко получить полностью работающее приложение со всеми процесс регистрации выполнен.

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

Для сравнения, я очень люблю НПМ сообщества, есть много маленьких пакета с одной функцией, вы можете легко интегрировать, таким же образом, я стараюсь, чтобы пользу библиотеки вместо расслоения, когда я хотите выпустить проект с открытым исходным кодом. Речь идет о том, что реализация рамок не содержит никакой концепции или философии и легко интегрируется в существующий проект.

Я помню некоторые ранние дни, когда мне приходилось играть с Joomla, Drupal, Wordpress, что бы это ни было, это мода «плагин/расширение/модуль», так же, как мы часто слышим «есть набор для этого », некоторые люди, или компания просто хотят сделать это, независимо от качества, будущего приложения, потому что оно уже продано.

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

Это история фантастики основана на моем собственном опыте и неудачи его использования :)

+0

Я согласен с вами: если вы не хотите использовать комплект * точно *, как это было сделано, потребуется больше времени, чтобы изменить его, чем разработать свой собственный. FYI, я потерял много денег из-за Symfony и того, что, по его словам, очень полезно. Я бы выиграл, если бы сделал это с нуля. Но я потерял дни и дни, пытаясь использовать этот комплект, как взломать его, и самое худшее: как использовать доктрину, которую я всегда буду объяснять, почему ** избегайте ** каждый раз, когда один из моих студент спросит, что это такое. –

+0

+1 Действительно замечательное резюме пучков, плагинов в целом, я часто нахожу, что в конечном итоге проще писать свои собственные вещи, вместо того, чтобы взломать мой путь вокруг чего-то другого, независимо от того, насколько хорошо его документация/код есть. Связки могут быстро начать работу над проектом и сэкономить много времени, особенно для новых пользователей, я чувствую себя для новых людей, это мешает им учиться, поскольку они действительно не понимают «Как это работает» –

+0

«как использовать доктрину, которую я всегда буду объяснять, почему я избегаю этого каждый раз, когда один из моих учеников спрашивает, что это такое ... ... звуки действительно подкреплены фактами и аргументами. Очевидно, что нет ... Во всяком случае, вам не нужно взламывать их, чтобы использовать их правильно, это всего лишь вопрос крутой кривой обучения (+ подходящий вариант использования и то, как широко он используется в сообществе), если вы не иметь надлежащие знания. Имо вы правы в этом вопросе: вам это не нравится? то не используйте его.Но говорить о такой BS студентам - это просто неправильно. – B2F