Форум сайта python.su
![[RSS Feed] [RSS Feed]](/static/djangobb_forum/img/feed-icon-small.png) 
			 
							 3
  3   
								
								Решил, что этот вопрос стоит запостить не в zope - раздел, а именно сюда, так как он к вебу и, собственно к Zope 3 в принципе прямого отношения не имеет.
Собственно, вопрос в следующем:
  Возможно ли, и если возможно, то как подходить к написанию приложений с компонентной архитектурой на базе интерфейсов (zope.interface.Interface), без старта application server, а только использовать такие вещи, как:
   - интерфейсы,
   - адаптеры,
   - реестры утилит, адаптеров, … 
   - ZCML. ?
Заранее спасибо за ответ.
Отредактировано (Сен. 22, 2009 18:15:09)
Офлайн
 
							 14
  14   
								
								zope.interface постоянно использую без zope. Это - интерфейссы и адаптеры. Остальное было не нужно
Офлайн
 
							 3
  3   
								
								А как насчет реестра адаптеров, утилит и ZCML?
Офлайн
 
							 14
  14   
								
								реестр нужен был примитивный - сделал через хук в zope.interface.
Утилиты - как-то обхожусь. В zope оно удобно, но я  использую немного другие средства для того же.
ZCML - чур меня, чур. Кстати, а кому он без zope нужен?
Офлайн
 
							 3
  3   
								
								Андрей СветловНу, мне zcml все-таки очень удобное средство для конфигурации, чтобы не делать в коде каждый раз что-то типа,
ZCML - чур меня, чур. Кстати, а кому он без zope нужен?
registry.register..
<adapter
for = "IFoo"
factory = "FooToBar"
...
</adapter>
Офлайн
 
							 20
  20   
								
								zope.interface использую давно.
Буквально пару недель назад начал пользовать zope.component, zope.configuration и zope.schema, пока впечатления только положительные. Стремно, что многие другие любопытные пакеты тянут за сабой огромные зависимости, вплоть до ZODB3.
> можно ли обойтись одним пакетом zope.configuration
Нет. Но зависимости у него минимальные и в основном полезные. Т.е. меня они совершенно не смущают.
p.s. Пользуясь случаем хочу выразить благодарность разработчикам компонентной модели и других полезняшек Zope3.
..bw
Офлайн
 
							 3
  3   
								
								Значит так. Покопался в коде и таки кое-чему научился =).
Подключить ZCML довольно-таки просто:
from zope.configuration.xmlconfig import xmlconfig
from cStringIO import StringIO
from zope.component.tests import clearZCML,
clearZCML()
xmlconfig(StringIO(open('configure.zcml').read()))
bwПрисоединяюсь =)
Пользуясь случаем хочу выразить благодарность разработчикам компонентной модели и других полезняшек Zope3.
Отредактировано (Сен. 24, 2009 13:41:44)
Офлайн
 
							 1
  1   
								
								regallЧего-то по выделенным местам не похоже, что это прямой путь :)
from zope.component.tests import clearZCML … Смотрим base.adapters._adapters
regallотлично, поддерживаю ;)
Возникла у меня идейка написать по поводу моих скитаний статейку, если решусь - кину ссылку
Офлайн
 
							 20
  20   
								
								> Подключить ZCML довольно-таки просто:
Ты хотел сказать…
from zope.configuration import xmlconfig
xmlconfig.file('configure.zcml')
Офлайн
 
							 20
  20   
								
								Сейчас такое полезное наблюдение сделал, если дернуть за zope.security вытягивается небольшой набор очень интересных пакетов, которые, пожалуй, можно поголовно использовать в средних и крупных проектах:
 - zope.component
 - zope.configuration
 - zope.copy
 - zope.event
 - zope.exceptions
 - zope.i18nmessageid
 - zope.interface
 - zope.location
 - zope.proxy
 - zope.schema
 - zope.security
Общий объем ~3.5 метра (с компиляцией модулей в pyc). Пока уверенности нет, но если они заработают в архиве, то размер будет заметно меньше. Глянул сейчас исходники zope.configuration, все .zcml в архивах работать не будут :-(, т.е. они не будут читаться из архивных яиц. Это объясняется тем, что доступ к конф. файлам осуществляется через системные функции, а не (религиозно правильно :-) через pkg_resources. Собственно я сам начал лишь недавно пользоваться этим модулем, а зоповцам, как я понимаю, еще предстоит его внедрить в zope.configuration и другой код, работающий с “пакетными” ресурсами.
..bw
Отредактировано (Сен. 24, 2009 21:13:47)
Офлайн
![[RSS Feed] [RSS Feed]](/static/djangobb_forum/img/feed-icon-small.png)