diff -r 097b0c025eec -r 49e4432c0a1d src/source/admln_guide/appconfig.rst --- a/src/source/admln_guide/appconfig.rst Tue Dec 11 17:00:42 2018 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,80 +0,0 @@ -.. _config: - -PyAMS configuration -=================== - -.. Note:: - - PyAMS application configuration is done via several complementary ways: - - - via **Pyramid's configuration** files located in 'etc/' folder - - - via **ZCML files** . - - - via **Site Management** to setup Local utilities defined into ZODB (see :ref:`appmanage`) - - -Pyramid's configuration files ------------------------------ - -PyAMS is using default Pyramid's ini_ configuration files to define settings. When using default PyAMS scaffold, these -INI files are stored into *etc* folder. Two files are created by scaffold: a development file (*development.ini*) and -a production file (*production.ini*) which contain nearly the same directives, except for debug toolbar (activated only -in development), Fanstatic configuration and logging. - -.. _ini: https://docs.pylonsproject.org/projects/pyramid/en/latest/narr/project.html#development-ini - -These files are actually documented, but here are a few important directives: - -- **zodbconn.uri**: (ex: zconfig:/zodb-relstorage.conf) - -- **pyams.application_name**: Name of your own application -- **pyams.application_factory**: Configuration module path to your custom application. - -- **pyams_xxx.tcp_handler** : Adress of the tcp handler for the service associated to the pyams package -- **pyams_xxx.start_handler**: True / False - -- **pyams_content.config.xxx_tool_factory** and **pyams_content.config.xxx_tool_name**: You can override default factory by defining these settings or by providing your own adapters. - - - -Pyramid's configuration files powered by PyAMS_utils ----------------------------------------------------- - -On application startup, if PyAMS_utils package is included into Pyramid configuration, several operations take -place: - - - a custom **site factory** is defined - - - custom request methods are defined - - - a custom **traverser** handling **namespaces** is defined - - - a custom subscribers predicate based on interfaces support is defined - - - several adapters are registered, to handle annotations and key references - - - custom TALES extensions are registered. - -The site factory is an important component in this process. It is this factory which will define the application root -and create a **local site manager**. - -Pyramid application is loaded from ZODB's root via a key defined in Pyramid's configuration file; the key is named -*pyams.application_name* and it's default value is *application*. - -If the application can't be found, PyAMS is looking for an application class name in Pyramid's configuration file; the -class name configuration key is called *pyams.application_factory* and defined by default as -*pyams_utils.site.BaseSiteRoot*. PyAMS default site factory will then create the application, and add a local site -manager to it (see :ref:`zca`). - -After application creation, a :py:class:`NewLocalSiteCreatedEvent ` is -notified. Custom packages can subscribe to this event to register custom components. - - - -ZCML configuration files ------------------------- - -Adding more ZCML configuration directives is not mandatory in any way but can be useful in several use cases. For -example, templates can't be overriden via Python annotations without creating a new subclass; this can be done -easily via ZCML.