Расширения и символические ссылки TYPO3

Могу ли я создать символическую ссылку на локальное расширение из другой папки проекта? У меня есть общий локальный сервер, и мне нужно реализовать одно и то же расширение для всех локальных установок проекта. Я пытался поставить символическую ссылку, но иногда я не получаю ожидаемого результата. Я получаю это только после очистки кеша этого конкретного проекта.


person Nilambari    schedule 03.06.2010    source источник


Ответы (5)


Ваш сценарий, я думаю, распространен. Но, как сказал Омар, связывание с одной и той же кодовой базой расширения через несколько экземпляров typo3 не является хорошей практикой. Но у нас такая же структура, как у вас, мы реализуем это через SVN. Все наши проекты имеют репозиторий SVN, а общие расширения имеют собственный репозиторий. Через svn:externals расширения подключаются к конкретному проекту. Это имеет то преимущество, что вы можете изменить расширение в конкретном проекте и после фиксации всех других проектов (которые, однако, должны обновляться из svn) внести свой вклад в него. Я думаю, что это также будет соответствовать вашим потребностям.

person dArignac    schedule 17.06.2010

Если я правильно понял ваш вопрос, у вас есть несколько сайтов Typo3 на одном сервере и вы хотите поделиться между ними расширением с помощью символической ссылки. Я не думаю, что это очень хорошая идея, потому что многие расширения используют таблицы, и каждый сайт обычно имеет свою собственную базу данных, поэтому вам придется много возиться, чтобы заставить это работать.

Вместо этого вы можете внести все изменения в файлы расширений в папке typo3conf/ext/extension_name, а затем экспортировать расширение в файл t3x (Ext Manager в Backend). Этот файл t3x можно установить как расширение (расширение импорта) на все остальные ваши сайты.

Если ваше расширение не использует базу данных и вы планируете вносить частые изменения, я думаю, вы сможете это сделать (символическая ссылка). В противном случае я рекомендую вам использовать первый подход, который я описал.

person Omar Kohl    schedule 07.06.2010

Я не пробовал, но вы должны иметь возможность устанавливать расширения глобально в Typo3. Это означает, что данное расширение помещается внутри '(typo3_src/)typo3/ext/' вместо 'typo3conf/ext/', предполагая, что оба сайта используют одно и то же ядро/источник Typo3 (и, таким образом, typo3_src является символической ссылкой на расположение). ядра).

Вы можете включить установку глобальных расширений через Install Tool. Оказавшись внутри инструмента, нажмите «Все конфигурации», затем найдите «allowGlobalInstall». Или поместите следующую строку в ваш localconf.php:

$TYPO3_CONF_VARS['EXT']['allowGlobalInstall'] = '1';

Наконец, что не менее важно, вам нужно убедиться, что каталог 'typo3/ext/' доступен для записи.

Надеюсь, это поможет. Если у вас есть дополнительные вопросы, дайте мне знать :)

person Björn Kuipers    schedule 07.06.2010

Как упомянул Бьорн, я бы предложил установить их глобально. Имейте в виду, что обновление источника потребует соответствующего перемещения расширений.

person konsolenfreddy    schedule 18.08.2010

Что касается «ожидаемого результата»: имейте в виду, что код в этих папках кэшируется различными способами (в основном содержимое страницы и настройки конфигурации) и, следовательно, не всегда запускается. По этой причине изменение, сделанное «извне» текущей установки, скорее всего, не распространится на ваш вывод без очистки этих кешей (как вы заметили).

Когда вы фактически устанавливаете расширение с помощью менеджера расширений, кеш должен (если он настроен правильно) быть очищен (заинтересованные стороны могут искать clearCacheOnLoad в class.em_index.php, чтобы обнаружить clear_cacheCmd('all')). Для этого в процессе установки есть небольшой флажок, который обычно устанавливается.

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

person norwebian    schedule 29.10.2010