2010-06-03 4 views
2

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

ответ

2

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

1

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

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

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

1

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

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

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

наконец, но не в последнюю очередь, вы должны убедиться, что «typo3// доб» каталог записываемый.

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

1

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

0

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

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

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

Смежные вопросы