Инструменты развертывания
Pimcore предоставляется следующие инструменты для поддержки процессов развертывания.
Pimcore Configurations
Все конфигурации Pimcore сохраняются в виде файлов YAML или PHP в файловой системе. В результате они могут быть включены в Системы управления версиями и, используя Функция Multi Environment различные файлы конфигурации для разных этапов развертывания может быть определен.
- https://github.com/pimcore/demo/tree/11.x/config
- https://github.com/pimcore/demo/tree/11.x/config/pimcore
- https://github.com/pimcore/demo/tree/11.x/var/config
определения класса Pimcore
Как и в случае конфигураций Pimcore также определения класса Pimcore сохраняются как файлы конфигурации PHP и, следовательно, могут Будьте добавлены в системы управления версиями и быть развернуты на разных этапах развертывания.
Файлы конфигурации PHP и классы PHP будут записаны в каталог var/classes по умолчанию.
Чтобы запретить модификацию и повернуть класс, чтобы быть только для чтения, вы можете создать копию
в {c11}.
Что касается модификации класса, также существует дополнительная переменная ENV PIMCORE_CLASS_DEFINITION_WRITABLE, которую можно рассмотреть и установить.
0, чтобы запретить полностью написать доступ, включая создание новых классов.1, чтобы разрешить модификацию, включая классы вconfig/pimcore/classes, которые обычно только чтение.- Когда классы
not setвconfig/pimcore/classesтолько чтение, но новые классы разрешены и будут созданы вvar/classes.
С помощью переменной env {c19} вы можете указать каталог для поиска определений класса
Если вы не хотите, чтобы Pimcore искал в var/classes или config/pimcore/classes.
Note: Changes on Pimcore class definitions not only have influence to configuration files but also on the database. If deploying changes between different deployment stages also database changes need to be deployed. This can be done with the
pimcore:deployment:classes-rebuildcommand.
После каждого обновления кода вы должны использовать команду pimcore:deployment:classes-rebuild, чтобы натолкнуть изменения в базу данных.
./bin/console pimcore:deployment:classes-rebuild
To create new classes from your configuration files in the database you can use the create-classes option.
./bin/console pimcore:deployment:classes-rebuild --create-classes
If you use Оптимизация автозагрузчика композитора, you have to register the newly created classes via:
composer dump-autoload --optimize
As an alternative also class export to json-files and the class import commands can be used.
./bin/console pimcore:definition:import:objectbrick /brick_jsonfile_path.json
./bin/console pimcore:definition:import:fieldcollection /collection_jsonfile_path.json
./bin/console pimcore:definition:import:class /class_jsonfile_path.json
Pimcore Console
The Пимкорская консоль provides several useful tasks for deployment. These tasks can be integrated into custom deployment workflows and tools. One example for them would be the Pimcore class definitions as described above.
To get a list of all available commands use ./bin/console list.
Potentially useful commands:
| Command | Description |
|---|---|
| pimcore:mysql-tools | Optimize and warm up mysql database |
| pimcore:search-backend-reindex | Re-indexes the backend search of Pimcore (only available if you have installed the simpleBackendSearchBundle) |
| pimcore:cache:clear | Clear Pimcore core caches |
| cache:clear | Clear Symfony caches |
| pimcore:cache:warming | Warm up caches |
| pimcore:classificationstore:delete-store | Delete Classification Store |
| pimcore:definition:import:class | Import Class definition from a JSON export |
| pimcore:definition:import:customlayout | Import Customlayout definition from a JSON export |
| pimcore:definition:import:fieldcollection | Import FieldCollection definition from a JSON export |
| pimcore:definition:import:objectbrick | Import ObjectBrick definition from a JSON export |
| pimcore:definition:import:units | Import Quantity value units definition from a JSON export |
| pimcore:deployment:classes-rebuild | Rebuilds classes and db structure based on updated var/classes/definition_*.php files |
| pimcore:thumbnails:image | Generate image thumbnails, useful to pre-generate thumbnails in the background. Use --processes option for parallel processing. |
| pimcore:thumbnails:optimize-images | Optimize file size of all images in web/var/tmp |
| pimcore:thumbnails:video | Generate video thumbnails, useful to pre-generate thumbnails in the background. Use --processes option for parallel processing. |
Найдите больше о консоли Pimcore на Выделенная страница.
Миграция контента
Миграция контента между средами не обеспечивается Pimcore, и это вообще не рекомендуется.
Контент должен быть создан редакторами в производственной среде, и можно управлять видимостью на фронте по встроенным функциям, таким как публикация / unpublishing / {p5} / планирование / Предварительный просмотр эффекта в EditMode.
Поэтому редакторы не должны работать на разных этапах.
Конечно, миграция контента возможна, но это всегда очень индивидуальная задача в зависимости от модели данных, среда и варианты использования.
Если вам нужна какая -то миграция контента, используйте PHP API для {p7}, объекты и {p9} для этого.
Вы можете предложить улучшение документации или задать вопрос в комментариях.
Если вам нужна полноценная консультация — вы можете заказать её на нашем сайте.