правильно ли сохранять медиафайл проекта в репозиторий svn?


Я знаю, что могу сохранить все файлы своих проектов в хранилище, поэтому развертывание новой версии программного обеспечения станет возможным только с помощью экспорта svn в соответствующий каталог. Но у меня такое чувство, что это неправильный способ, и для медиафайлов я должен использовать некоторые другие утилиты для развертывания, такие как rsync. Но это также проблема с двусторонней синхронизацией = Мне нравится хранить резервные копии полных проектов в некотором пространстве безопасности (не только на реальном сервере). Итак, главный вопрос заключается в том, каков правильный путь и проект структура каталогов для веб-приложения на PHP?

Author: mihan007, 2009-12-03

5 answers

Эх, сложный вопрос.

Прежде всего, если у вас есть такая возможность, неплохо разделить "код" и "веб" часть. Что-то вроде того.

web/
web/css/
web/upload
code/
code/lib/
code/actions

Это выводит PHP из корневого веб-каталога. Это безопаснее (attacer не сможет получить доступ к вашим файлам, введя URL-адрес в браузере). НО - для этого требуется соответствующий дизайн приложения (например, платформа Symfony предоставляет вам аналогичный макет).

Второе - нет ничего плохого (на мой взгляд) в двоичных файлах внутри репозитория SVN. Оно однако все зависит от того, о каких файлах мы говорим. Если не загруженный пользователем контент - продолжайте. Чем менее сложным является развертывание, тем меньше шансов, что что-то пойдет не так.

КСТАТИ: Вы всегда можете отказаться от некоторых папок содержимого из svn, чтобы пользовательские файлы не перепутались с вашими файлами.

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

 1
Author: Tomasz Struczyński, 2009-12-03 11:53:28

Абсолютно правильно помещать медиафайлы в систему управления версиями (будь то svn или что-то еще). Вероятно, это хорошая идея - поместить медиафайлы где-нибудь отдельно от ваших файлов.php.

Зачем выполнять развертывание в два этапа (svn, а затем rsync или аналогичное), когда вы можете сделать это за один шаг?

 0
Author: Dominic Rodger, 2009-12-03 11:49:07

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

Кроме того, если вы хотите иметь резервные копии своего репозитория svn, вы можете использовать команду svnsync, чтобы иметь какое-либо другое поле, отражающее ваш "основной" репозиторий subversion.

Что касается структуры, то наилучшая практика в основном зависит от варианта использования, с которым вы сталкиваетесь. Скорее всего, вы захотите упорядочить свои файлы по модулям и типу контента (поэтому, имея носитель отделенный от кода, ...).

 0
Author: Romain, 2009-12-03 11:50:07

Также можно поместить медиафайлы в svn. Вы можете использовать, например, внешние ссылки svn, чтобы объединить медиафайлы в свое дерево, поэтому вам нужно выполнить только одну проверку, и у вас есть полная поддержка subversion, и вы не загромождаете свой репозиторий исходного кода.

 0
Author: Patrick Cornelissen, 2009-12-03 11:56:41

На мой взгляд, это зависит от того, о каком типе СМИ вы говорите. Если это что-то статичное, например изображения, javascript, css и т. Д. - Что-то, что не является временным, то поместите это в subversion. Однако, если это что-то изменится, например, реклама, я не думаю, что есть много причин для ее подрыва. Просто установите пропуск каталога на игнорирование и загрузите файлы вручную с помощью rsync, scp или ftp.

 0
Author: Hans, 2009-12-03 13:28:26