contao-community-alliance/dc-general-data-provider-php-globals-config-file

文件数据提供程序,用于contao-community-alliance/dc-general

1.0-RC3 2018-03-16 12:30 UTC

This package is auto-updated.

Last update: 2024-09-06 09:14:42 UTC


README

此数据提供程序用于dc-general,通过单个PHP文件加载和存储数据在PHP $GLOBALS数组中。

DCA使用示例

use ContaoCommunityAlliance\DcGeneral\DataProvider\PhpGlobalsConfigFileProvider;

$GLOBALS['TL_DCA']['my_dca'] = array
(
	'config' => array(
		'dataContainer' => 'General',
	),
	'dca_config'   => array
	(
		'data_provider' => array
		(
			'default' => array
			(
				'class' => 'ContaoCommunityAlliance\DcGeneral\DataProvider\PhpGlobalsConfigFileProvider',

				/**
				 * The source filename.
				 */
				'source' => 'path/to/the/config.php',

				/**
				 * The namespace definition (default=null, optional).
				 */
				'namespace' => 'my/dca',

				/**
				 * The property key name pattern (default="*", optional).
				 */
				'pattern' => 'my_*',

				/**
				 * Save mode (default="diff", optional)
				 */
				'mode' => PhpGlobalsConfigFileProvider::MODE_ALL,
			)
		),
	),
);

输出示例

生成的文件看起来像这样

<?php

// updated at: Mon, 17 Mar 2014 17:56:24 +0100

$GLOBALS['my']['dca']['my_field1'] = 'value 1';
$GLOBALS['my']['dca']['my_field2'] = 'value 2';
$GLOBALS['my']['dca']['my_field3'] = 'value 3';

命名空间和键名模式

直接篡改$GLOBALS数组是完全不可取的。您可以使用自定义命名空间,它定义了$GLOBALS数组中的路径。每个命名空间部分由/分隔,例如my/dca,它将被解码为$GLOBALS['my']['dca']

此外,您可能还想按名称过滤属性,这在提供程序与其他PHP全局配置文件提供程序共享命名空间时非常有用。该模式允许您过滤接受的属性名称。例如,my_*将仅接受并存储以my_开头的属性。允许使用通配符,通过fnmatch

保存模式

数据提供程序有两种生成模式。

diff模式下,它将在包含配置文件之前读取状态之前。此状态被视为“默认”状态。当生成PHP文件时,仅包括与“默认”视图不同的值。

all模式下,将存储所有属性,而不管先前状态如何。

作为开发者,您必须尊重,只有在您没有自己包含PHP文件的情况下,diff模式才有效。在加载过程中,PHP文件将通过require自动加载。在all模式下,PHP文件也将通过require_once加载。