xref: /PHP-7.3/ext/spl/examples/inigroups.inc (revision 1c850bfc)
1<?php
2
3/** @file inigroups.inc
4 * @ingroup Examples
5 * @brief class IniGroups
6 * @author  Marcus Boerger
7 * @date    2003 - 2005
8 *
9 * SPL - Standard PHP Library
10 */
11
12if (!class_exists("KeyFilter", false)) require_once("keyfilter.inc");
13if (!class_exists("DbaReader", false)) require_once("dbareader.inc");
14
15/** @ingroup Examples
16 * @brief   Class to iterate all groups within an ini file.
17 * @author  Marcus Boerger
18 * @version 1.1
19 *
20 * Using this class you can iterator over all groups of a ini file.
21 *
22 * This class uses a 'is-a' relation to KeyFilter in contrast to a 'has-a'
23 * relation. Doing so both current() and key() methods must be overwritten.
24 * If it would use a 'has-a' relation there would be much more to type...
25 * but for puritists that would allow correctness in so far as then no
26 * key() would be needed.
27 */
28class IniGroups extends KeyFilter
29{
30	/**
31	 * Construct an ini file group iterator from a filename.
32	 *
33	 * @param file Ini file to open.
34	 */
35	function __construct($file) {
36		parent::__construct(new DbaReader($file, 'inifile'), '^\[.*\]$');
37	}
38
39	/**
40	 * @return The current group.
41	 */
42	function current() {
43		return substr(parent::key(),1,-1);
44	}
45
46	/**
47	 * @return The current group.
48	 */
49	function key() {
50		return substr(parent::key(),1,-1);
51	}
52}
53
54?>
55