Лучший способ соединить две большие PHP-фреймворки - PullRequest
1 голос
/ 11 октября 2010

Я сделал несколько php-скриптов в качестве плагина для одной большой платформы. Мои скрипты используют его библиотеки довольно часто. Теперь тот, кто использует другую платформу с ее собственными библиотеками и т. Д. (Возможно, столь же мощными, как и используемая мной среда), хочет вызывать функции в моих сценариях.

Как лучше всего сделать так, чтобы мои скрипты можно было вызывать из другого фреймворка?

  • другой человек просто включает () файлы скриптов, которые ему нужны, поэтому мои скрипты вызывают библиотеки моей платформы, а это также означает, что обе платформы должны быть установлены на одном сервере
  • я делаю свои функции вызываемыми через веб-сервисы (возможно, из-за потери скорости, но возможно разделение фреймворков)
  • переписывает мои функции в его рамки ...

Есть ли у кого-нибудь мнение, основанное на предпринятых ими попытках относительно того, какое решение лучше всего подходит, например, когда одна из платформ решает обновить?

Ура!

Ответы [ 4 ]

2 голосов
/ 11 октября 2010

С точки зрения производительности, ремонтопригодности и читаемости лучше всего выбрать один «каркас» и придерживаться его (для приложения). Я помещаю фреймворк в кавычки, так как я также использую его в контексте набора библиотек.

Каждое из ваших решений будет работать, но я думаю, что лучшим будет №3, если он предназначен для одного приложения. # 2 будет работать лучше, если они являются дискретными приложениями (поскольку они теряют связи между приложениями).

Лично я бы предложил выбрать один фреймворк для приложения и придерживаться его. Так что № 3 будет моим предложением (не зная, являются ли они отдельными приложениями или нет) ...

1 голос
/ 11 октября 2010

@ ircmaxell делает хорошее замечание, однако я бы добавил, что если у вас есть для этого, и вы обладаете роскошью PHP 5.3, используйте пространства имен с любыми расширениями или кодом посредника между платформами. 1003 *

1 голос
/ 11 октября 2010

Предполагая, что вы готовы предоставить им полный доступ к вашим библиотекам (которые по умолчанию обычно не доступны для чтения), вы попросите их загрузить и использовать все издержки обеих платформ, которые могут сильно снизить производительность.Как и загрузка Jquery и Prototype, вы можете сделать это, но это не очень умно.

Использование маршрута веб-сервисов решает ваши проблемы безопасности, разделяет две платформы, открывает вам доступ к другим в будущем (независимо отих структура / платформа) и, скорее всего, сэкономит время.

1 голос
/ 11 октября 2010

Чтобы сделать ваш код переносимым между фреймворками, вы можете написать дополнительный уровень абстракции - уровень фреймворка.Затем у вас есть включение для каждой платформы, которую вы поддерживаете.Какой файл включен, может быть определено во время выполнения путем определения структуры.Везде, где вы вызываете функцию в базовом фреймворке, вместо этого вызывайте свою собственную функцию, и эта функция затем вызывает соответствующую функцию в фреймворке.

Вы можете разработать это как интерфейс и создатькласс для каждой платформы, которая реализует это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...