view config/Benzin.Web.Application.xml @ 14:d997ff96acf1

sync
author sergey
date Mon, 19 May 2014 18:34:16 +0400
parents 573272ec604b
children
line wrap: on
line source

<?xml version='1.0' encoding='utf-8'?>
<Application id="app" type="Benzin::Web::Application">
	<requestCharset>utf-8</requestCharset>
	<securityFactory type="IMPL::Object::Factory">
		<factory>IMPL::Config</factory>
		<method>spawn</method>
		<parameters>security.xml</parameters>
	</securityFactory>
	<connections type="HASH">
		<doxLibrary type="HASH">
			<dsn>DBI:mysql:database=test;host=localhost;mysql_socket=/tmp/mysql-implab.sock;mysql_enable_utf8=1
			</dsn>
			<user>root</user>
			<password />
			<AutoCommit>1</AutoCommit>
			<mysql_enable_utf8>1</mysql_enable_utf8>
			<on_connect_do>set names utf8</on_connect_do>
		</doxLibrary>
	</connections>
	<handlers type="ARRAY">

		<!-- Настройка контроллера для вызова методов предметной области -->
		<item type="IMPL::Web::Handler::RestController">

			<!-- Корневой ресурс -->
			<resourceFactory>Implab::Web::Resources::Root</resourceFactory>
		</item>

		<!-- Представления -->
		<item type="IMPL::Web::Handler::ViewSelector">

			<!-- Используя расширения в именах ресурсов можно форсировать определенный 
				тип представления -->
			<types type="HASH">
				<json>application/json</json>
				<html>text/html</html>
			</types>

			<!-- Сами представления -->
			<views type="ARRAY">

				<!-- HTML, используется шаблонизатор -->
				<item id="html-view" type="IMPL::Web::Handler::TTPresenter">
					<contentType>text/html</contentType>
					<contentCharset>utf-8</contentCharset>
					<options type="HASH">
						<INCLUDE_PATH type="ARRAY">
							<item type="IMPL::Config::Reference">
								<target>IMPL::Config</target>
								<AppDir>view</AppDir>
							</item>
							<item type="IMPL::Config::Reference">
								<target>IMPL::Config</target>
								<AppDir>shared_view</AppDir>
							</item>
						</INCLUDE_PATH>
						<INTERPOLATE>1</INTERPOLATE>
						<POST_CHOMP>1</POST_CHOMP>
						<ENCODING>utf-8</ENCODING>
						<COMPILE_DIR>/tmp/ttc</COMPILE_DIR>
					</options>
					<includes type='ARRAY'>
						<item>includes</item>
					</includes>
					<globals id="globals" type="HASH">
						<cdn type="IMPL::Config::Include">cdn.xml</cdn>
						<site type="HASH">
							<name>ImpLab.org</name>
						</site>
						<aliases type="HASH">
							<form>IMPL::Web::View::TTFormContainer</form>
						</aliases>
					</globals>
				</item>

				<!-- JSON используется преобразование в JSON -->
				<item type="IMPL::Web::Handler::JSONView">
					<transform>Benzin::JSON</transform>
				</item>
			</views>
		</item>

		<item type="IMPL::Web::Handler::LocaleHandler">
			<locales type="ARRAY">
				<item>ru-RU</item>
				<item>en-US</item>
			</locales>
			<default>en-US</default>
		</item>

		<item type="Benzin::Web::EnvAuthHandler" />
		<!-- модуль аутентификации по cookies -->

		<item type="IMPL::Web::Handler::SecureCookie" />

		<!-- Обработчик ошибок, также использует шаблонизатор -->
		<item type="IMPL::Web::Handler::ErrorHandler">
			<contentType>text/html</contentType>
			<view id="tt-view" type="IMPL::Web::View::TTView">
				<options type="HASH">
					<INCLUDE_PATH type="ARRAY">
						<item type="IMPL::Config::Reference">
							<target>IMPL::Config</target>
							<AppDir>view</AppDir>
						</item>
						<item type="IMPL::Config::Reference">
							<target>IMPL::Config</target>
							<AppDir>shared_view</AppDir>
						</item>
					</INCLUDE_PATH>
					<INTERPOLATE>1</INTERPOLATE>
					<POST_CHOMP>1</POST_CHOMP>
					<ENCODING>utf-8</ENCODING>
					<COMPILE_DIR>/tmp/ttc</COMPILE_DIR>
				</options>
				<layoutBase>layout</layoutBase>
				<viewBase>errors</viewBase>
				<layout>default</layout>
				<includes type='ARRAY'>
					<item>includes</item>
				</includes>
				<globals refid="globals" />
			</view>
			<errors type="HASH">
				<error extname="500">500</error>
				<error extname="404">404</error>
				<error extname="403">403</error>
				<error extname="401">401</error>
			</errors>
			<fallback>500</fallback>
		</item>
	</handlers>
</Application>