Сборка, выпуск, запуск: Применимо к скомпилированному коду, чего нет в PHP.Таким образом, этот момент не является тем, на что вам нужно обратить внимание.
Я не претендую на какие-либо полномочия по этим 12 факторам, но мое прочтение этого раздела заключается в том, что автор не согласится.Речь идет не только о компиляции, но и об управлении зависимостями как в маленьких (снимок кода), так и в больших (любые библиотеки, которые использует код).
Представьте, что вы новый разработчик, и они говорят: «Хорошо, это пользовательское приложение php, так что ...
a) Пользовательский код - это на самом деле два подпроекта, которые находятся вrepo A и repo B.
b) Вам нужно будет создать макет каталога следующим образом, а затем
c) проверить код для каждого подпроекта в этом подкаталоге и этом подкаталоге.
d) Вам также понадобятся три библиотеки PHP с открытым исходным кодом:
версия 3.1 библиотеки Foo, версия 2.3 библиотеки Bar и версия 5.6 библиотеки Bat.
e) загрузите их со своих сайтов домашних проектов и распакуйте их, затем скопируйте их в этот каталог, этот каталог и другой каталог.
f) затем вам нужно будет настроить эти конфигурации во внешней библиотеке,
g) и эти конфиги в наших двух проектах с пользовательским кодом.
h) как только все будет сделано, tar / gzip все это, загрузите его на сервер QA и распакуйте вhtdocs.
В этом наборе нет компиляциишаги, но вы можете поспорить, что есть много зданий.
Настройка всего этого и работа - это шаг сборки.
Использование tar / gzip для создания снимка рабочей сборки - это шаг выпуска.
SCP 'вставка / распаковка его в каталог htdocs сервера QA - это шаг времени выполнения.
Можно сказать, что некоторые из этих шагов не нужны - библиотеки следует развертывать на системном уровне и просто импортировать.Я бы сказал, что с сайта 12factors.net автор предпочитает импортировать их уникально и индивидуально для приложения.Это позволяет избежать проблем с версионированием зависимостей за счет увеличения дискового пространства (не то, чтобы это кого-то беспокоило).Существуют и другие трудности в управлении всеми этими зависимостями как локальными для приложения, но в этом суть схемы build / release / runtime.