Какие фреймворки PHP имеют кодовую базу, которую можно легко разделить между целыми сайтами? - PullRequest
0 голосов
/ 13 октября 2011

Я стремлюсь уменьшить избыточность кода, распространяемого по всем веб-сайтам. Я работал с несколькими фреймворками, но не могу вспомнить ни одного, который позволил бы вам ЛЕГКО отделить код фреймворка от кода сайта, одновременно предоставляя его нескольким сайтам одновременно.

Какие PHP-фреймворки могут сделать это легко?

РЕДАКТИРОВАТЬ - Я пытаюсь определить, какие структуры проще всего использовать. Я уже догадывался, что почти все могут быть общими, но какие структуры ориентированы на совместное использование? Похоже, что Yii рекомендует размещать код фреймворка вне кода сайта, это хорошее начало.

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

Ответы [ 6 ]

3 голосов
/ 19 октября 2011

Это довольно легко сделать с Топливом (http://fuelphp.com).

На каждом веб-сайте есть index.php, в котором определены некоторые пути:

/**
* Set all the paths here
*/
$app_path       = '../fuel/app/';
$package_path   = '../fuel/packages/';
$core_path      = '../fuel/core/';

Как видите, вы можете совместно использовать ядро ​​и пакеты в центральном репозитории и создавать отдельное приложение и общие папки для каждого веб-сайта.

Вы даже можете поделиться приложением с разными веб-сайтами, настраивая материал (скажем, название сайта или используемую базу данных), просто установив другую среду в .htaccess. Например, это работает «из коробки» для сайтов разработки / стадии / производства, но может быть распространено на что угодно. Вы также можете настроить центральные пакеты для использования в нескольких приложениях. Мощный, легкий и просто работает.

1 голос
/ 13 октября 2011

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

Но вы также можете рассмотреть Symfony 1.4.Один проект может обрабатывать множество приложений, поэтому ваша модель может использоваться в этих приложениях, и один и тот же код может быть повторно использован во всех приложениях.Обратите внимание, что приложение может быть полным веб-сайтом.

1 голос
/ 13 октября 2011

Symfony делает. Мне нравится фреймворк Symfony, и он поставляется с некоторыми замечательными фреймворками. Вам могут понравиться Routing и YAML. Человек, которого я знаю, называет Symfony лучшей платформой php.

Компоненты Symfony

Некоторые компоненты имеют свои собственные сайты

Вы можете найти действительно хорошую документацию здесь.

1 голос
/ 13 октября 2011

Многие могут это сделать.Например, YII должен быть установлен вне вашего корневого каталога www (httpdocs, /var/www/ или что-то в этом роде).Вы можете использовать несколько сайтов, чтобы указывать на этот базовый каталог.

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

1 голос
/ 13 октября 2011

Я полагаю, что Zend может делать то, что вы просите, возможно, даже Symfony и Fuel, и я уверен, что многие другие фреймворки, которые позволят вам выбрать, какие части его использовать, позволят вам сделать это.

Однако, для этого потребуется немного больше настроить, чтобы все это заработало. Именно поэтому я и создал свою собственную платформу.

0 голосов
/ 13 октября 2011

Я не могу представить себе какие-либо фреймворки, которые делают это изначально, но вы могли бы использовать несколько SVN (или hg и т. Д.) Репозиториев для этого.Пример использования CakePHP:

  • 1 репо имеет файлы по умолчанию CakePHP.Если вы хотите обновить CakePHP, вы обновите это репо в будущем.
  • 1 репо на каждый веб-сайт, который хранит все в папке вашего приложения.Это не встроенный функционал, но его не очень сложно настроить.
...