Правильно ли сохранять медиа-файл проекта в хранилище SVN? - PullRequest
2 голосов
/ 03 декабря 2009

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

Ответы [ 5 ]

1 голос
/ 03 декабря 2009

Эхх, сложный.

Прежде всего, если у вас есть такая возможность, хорошо бы разделить часть «код» и «сеть». Нечто подобное.

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

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

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

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

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

0 голосов
/ 03 декабря 2009

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

0 голосов
/ 03 декабря 2009

Также нормально помещать медиа-файлы в SVN. Например, вы можете использовать внешние ссылки SVN, чтобы смешать файлы мультимедиа с вашим деревом, поэтому у вас есть только одна проверка, у вас есть полная поддержка Subversion, и вы не загромождаете свой репозиторий исходного кода.

0 голосов
/ 03 декабря 2009

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

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

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

0 голосов
/ 03 декабря 2009

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

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

...