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
Requires
- php: >=5.3
- contao-community-alliance/dc-general: ~2.0
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
加载。