Недавно мы анонсировали небольшой микро-фреймворк для JBZoo на нашем форуме. Решение сделано с помощью популярных PHP библиотек и оформлено по последнему писку моды (github, composer и т. д.). Пригодится как готовый способ запуска импорта через cron или разработки собственных консольных комманд для Joomla.
Распространяется под лицензией MIT, поэтому доступно любому желающему. Думаю, будет полезно рассказать о нем в нашем блоге.
И так…
Что такое JBZoo-CLI и с чем его едят?
Это дополнение, для сайта Joomla с JBZoo, которое мы собрали с помощью популярного компонента Symfony/Console + наработок с нашего форума. Дополнение сделано в виде законченного решения, которое можно развивать своими скриптами.
Все команды выполняются исключительно из командной строки. Сейчас есть импорт материалов и переиндексация, скоро добавим экспорт и несколько других полезных утилит (предлагайте!).
Особенно это будет полезно PHP программистам, которые хотят выполнять какие-то вещи с ZOO из консоли, но им жутко не хочется разбираться в нюансах запуска Joomla+ZOO из командной строки
Что умеет JBZoo-Cli?
- Импорт материалов — ./cli/jbzoo/bin/jbzoo import:items -profile
- Переиндексация базы данных — ./cli/jbzoo/bin/jbzoo tools:reindex
- Бесконечное количество профилей для импорта (см папку./configs/ и ключ -profile)
- Импортированный файл будет перенесен в отдельную папку.
- Есть глобальные настройки и масса настроек, например для импорта.
- Настройки консольного импорта полностью повторяют панель управления в браузере.
- Режим отладки и профилирование включается через ключ «-v» (verbose)
- Для длинных процессов есть консольный прогресс бар
- Можно легко добавить свою консольную команду, просто кинуть свой файл (спрашивайте на форуме).
- Работает в Linux и Windows.
Мелочь, а приятно…
- Можно устанавливать и обновлять через composer
- Лицензия MIT — т. е. бесплатно и доступно всем
- Репозиторий на GitHub.com
Как установить?
Желательно (но совсем не обязательно) через composer.
# Переходим в корень сайта cd <Joomla root path> # Запускаем установку самой свежей версии - 1.x-dev composer create-project jbzoo/cck-cli:1.x-dev ./cli/jbzoo/
Если для вас это сложно, то просто скачайте свежий архив jbzoo-cli-pack.zip И распакуйте сюда <корень_сайта>/cli/jbzoo, так чтобы был доступ к файлу <сайт>/cli/jbzoo/bin/jbzoo(.bat) После этого вы сможете запускать файлы внутри bin из консоли. Соответственно, для разных ОС — разные исполняемые файлы.
Внимание! Файлы внутри bin должны иметь права на выполнение.
Как добавить импорт в cron?
Через панель управления хостера, либо зайдите на сервер по ssh и далее «crontab -e» Добавьте задачу, один из вариантов ниже (этот пример выполнится раз в час).
Как именно запускать php и sh-скрипты в консоли лучше узнать у вашего хостера!
Вот несколько наиболее популярных примеров.
0 * * * * <ПОЛНЫЙ_ПУТЬ_ДО_КОРНЯ_САЙТА>/cli/jbzoo/bin/jbzoo import:items --profile=myprofile >> <ПУТЬ_ДО_ЛОГОВ>/cron.log 2>&1 0 * * * * php <ПОЛНЫЙ_ПУТЬ_ДО_КОРНЯ_САЙТА>/cli/jbzoo/vendor/jbzoo/console/bin/jbzoo import:items --profile=myprofile >> <ПУТЬ_ДО_ЛОГОВ>/cron.log 2>&1 0 * * * * /usr/local/bin/php <ПОЛНЫЙ_ПУТЬ_ДО_КОРНЯ_САЙТА>/cli/jbzoo/vendor/jbzoo/console/bin/jbzoo import:items --profile=myprofile >> <ПУТЬ_ДО_ЛОГОВ>/cron.log 2>&1
И еще…
- Минимальная версия — JBZoo 2.2.0 RC2 и Zoo 3.3.x+
- Мы не проверяли JBZoo-Cli на Joomla 2.5.x, т.к она очень и очень старая. Не поддерживается никем.
Теоретически должно работать. - Полностью тестировали на Joomla: 3.4.8 | JBZoo: 2.2.5 Pro | Zoo: 3.3.15
- Кстати, JBZoo-Cli — это часть нового JBZoo 3.0 Такие дела…
P.S Ставьте звезды на гитхабе и подписывайте на изменения репы или файла в маркете. Это даст понять на сколько оболочка востребована и что она нуждается в развитии.
Вопросы? =)
Я даж не понимаю для чего это, но звучит круто)
1
Насколько я понял, можно экспортировать из 1С файл, например price.csv, по ftp - в определенную папку, и с помощью этого механизма настроить импорт товаров на сайт в определенное время.
Да, все верно. Так обычно и работает синхронизация с 1С у большинства сайтов.
Если есть знания PHP, то расширение можно использовать для любых периодичных действий на сайте.
1
Недавно сделал импорт из 1С прямо в базу сайта, можно ли как то удаленно с помощью cli переиндексацию запустить?
Обычно консольные команды не предназначены для запуска извне. Это не безопасно.
Но если очень хочется, то посмотрите http://php.net/manual/ru/function.system.php
1
1
1
1
1
1
1