• Stars
    star
    134
  • Rank 270,145 (Top 6 %)
  • Language
    PHP
  • License
    MIT License
  • Created over 12 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Given a deep data structure representing a configuration, access configuration by dot notation.

Dot Access Configuration

Given a deep data structure representing a configuration, access configuration by dot notation.

This library combines dflydev/dot-access-data and dflydev/placeholder-resolver to provide a complete configuration solution.

Requirements

Usage

Generally one will use an implementation of ConfigurationBuilderInterface to build ConfigurationInterface instances. For example, to build a Configuration out of a YAML file, one would use the YamlFileConfigurationBuilder:

use Dflydev\DotAccessConfiguration\YamlFileConfigurationBuilder;

$configurationBuilder = new YamlFileConfigurationBuilder('config/config.yml');
$configuration = $configurationBuilder->build();

Once created, the Configuration instance behaves similarly to a Data instance from dflydev/dot-access-data.

$configuration->set('a.b.c', 'ABC');
$configuration->get('a.b.c');
$configuration->set('a.b.e', array('A', 'B', 'C'));
$configuration->append('a.b.e', 'D');

Custom Configurations

Configuration Builders use Configuration Factories and Placeholder Resolver Factories behind the scenes in order to build a working configuration.

Under normal circumstances one should not need to do anything with the Placeholder Resolver Factory. However, one may wish to extend the default Configuration class or use an entirely different implementation altogether.

In order to build instances of custom ConfigurationInterface implementations with the standard builders, one would need to implement ConfigurationFactoryInterface and inject it into any ConfigurationBuilderInterface.

If a Configuration is declared as follows:

namespace MyProject;

use Dflydev\DotAccessConfiguration\Configuration;

class MyConf extends Configuration
{
    public function someSpecialMethod()
    {
        // Whatever you want here.
    }
}

Create the following factory:

namespace MyProject;

use Dflydev\DotAccessConfiguration\ConfigurationFactoryInterface;

class MyConfFactory implements ConfigurationFactoryInterface
{
    /**
     * {@inheritdocs}
     */
    public function create()
    {
        return new MyConf;
    }
}

To use the factory with any builder, inject it as follows:

use Dflydev\DotAccessConfiguration\YamlFileConfigurationBuilder;
use MyProject\MyConfFactory;

$configurationBuilder = new YamlFileConfigurationBuilder('config/config.yml');

// Inject your custom Configuration Factory
$configurationBuilder->setConfigurationFactory(new MyConfFactory);

// Will now build instances of MyConfFactory instead of
// the standard Configuration implementation.
$configuration = $configurationBuilder->build();

License

This library is licensed under the New BSD License - see the LICENSE file for details.

Community

If you have questions or want to help out, join us in the #dflydev channel on irc.freenode.net.

More Repositories

1

dflydev-dot-access-data

Given a deep data structure representing a configuration, access configuration by dot notation.
PHP
590
star
2

git-subsplit

Automate and simplify the process of managing one-way read-only subtree splits.
Shell
328
star
3

dflydev-fig-cookies

Cookies for PSR-7 HTTP Message Interface.
PHP
223
star
4

dflydev-doctrine-orm-service-provider

Doctrine ORM Service Provider
PHP
211
star
5

dflydev-markdown

PHP Markdown & Extra — DEPRECATED
PHP
171
star
6

dflydev-placeholder-resolver

Provides a mechanism to resolve placeholders from an arbitrary data source.
PHP
143
star
7

dflydev-embedded-composer

Embed Composer into another application
PHP
71
star
8

dflydev-apache-mime-types

Apache MIME Types
PHP
71
star
9

es-cqrs-broadway-workshop

Introduction to Event Sourcing & CQRS with Broadway workshop project
PHP
68
star
10

dflydev-hawk

Hawk — A PHP Implementation
PHP
67
star
11

embed-github-gist

Embed GitHub Gist WordPress plugin
PHP
47
star
12

dflydev-canal

Analyze content to determine the appropriate Internet media type
PHP
34
star
13

dflydev-git-subsplit-github-webhook

GitHub WebHook for Git subsplits managed by dflydev-git-subsplit.
PHP
28
star
14

just-run-phpunit

Allow developers to "just run phpunit."
27
star
15

check-runs-action

✅ GitHub Check Runs Action
TypeScript
15
star
16

dflydev-base32-crockford

Encode/decode numbers using Douglas Crockford's Base32 Encoding
PHP
13
star
17

dflydev-stack-basic-authentication

HTTP Basic Authentication Stack middleware
PHP
12
star
18

repose-php

Repose is an Object-Relational Mapping (ORM) library for PHP5. Repose implements a Unit of Work (UoW), an Identity Map and generated proxy classes to provide transparent unobtrusive persistence in PHP.
PHP
11
star
19

dflydev-stack-hawk

Hawk Stack middleware
PHP
10
star
20

dflydev-encrypted-fig-cookies

Encrypted Cookies for PSR-7 HTTP Message Interface.
PHP
7
star
21

dflydev-finite-state-machine

Yet another finite-state machine implementation
PHP
7
star
22

dflydev-github-gist-twig-extension

GitHub Gist Twig Extension
PHP
7
star
23

dflydev-util-antPathMatcher

Ant Path Matcher Utility
PHP
6
star
24

old-ninjagrl.com

Architecture demo application for ninjagrl.com
PHP
6
star
25

dflydev-symfony-finder-factory

Symfony Finder Factory
PHP
6
star
26

dflydev-event-store

Naive event store.
PHP
6
star
27

substrate-php

Substrate - An IoC/DI Container for PHP
PHP
5
star
28

dflydev-stack-firewall

Firewall Stack middleware
PHP
5
star
29

dflydev-psr0-resource-locator-service-provider

PSR-0 Resource Locator Service Provider
PHP
4
star
30

dflydev-identity-generator

Provide a standard interface for generating unique string-based identifiers.
PHP
4
star
31

dflydev-embedded-composer-application

Embedded Composer Example Application
PHP
4
star
32

dd-ci-ddauth

Dragonfly Development CodeIgniter Auth Add-on
PHP
4
star
33

composer-tutorial

PHP
3
star
34

jquery-ddNamespace

jQuery Namespace Add-on
JavaScript
3
star
35

dflydev-common-domain-model-identity

Identity for domain models.
PHP
3
star
36

dflydev-psr0-resource-locator-composer

Composer PSR-0 Resource Locator
PHP
3
star
37

dflydev-stack-authentication

STACK-2 Authentication Middlewares
PHP
3
star
38

dflydev-event-store-doctrine-dbal

Doctrine DBAL implementation of a naive event store.
PHP
3
star
39

repose-ci-php

Repose PHP ORM CodeIgniter Library
PHP
3
star
40

streamdeck-restreamio

🔌 Stream Deck Restream.io plugin
CSS
3
star
41

halo-php

Halo Web Application Framework for PHP
PHP
3
star
42

dflydev-psr0-resource-locator

PSR-0 Resource Locator
PHP
3
star
43

dflydev-github-gist-twig-bundle

GitHub Gist Twig Bundle
PHP
3
star
44

dflydev-twig-gitHub-gist-sculpin-bundle

Twig GitHub Gist Sculpin Bundle
PHP
2
star
45

dflydev.com

Dragonfly Development Website
HTML
2
star
46

dflydev-embedded-composer-core

[READ-ONLY] Subtree split of Dflydev\EmbeddedComposer\Core.
PHP
2
star
47

skittle-php

Skittle - A lightweight pure PHP template inclusion library
PHP
2
star
48

dd-ci-vendorlibs

Dragonfly Development CodeIgniter Vendor Libs Add-on
2
star
49

dd-configuration-php

Dragonfly Development PHP Configuration Library
PHP
2
star
50

dflydev-common-domain-model-identity-rhumsaa

Implementation of identity for domain models using rhumsaa/uuid.
PHP
2
star
51

safsi-php

Simple Abstract File System Interface
PHP
2
star
52

nimble-tutorial

Nimble Tutorial
Makefile
2
star
53

dflydev-embedded-composer-console

[READ-ONLY] Subtree split of Dflydev\EmbeddedComposer\Console.
PHP
2
star
54

ddvash

ddVash WordPress Theme
PHP
1
star
55

dflydev-snort

Sniff content to determine things about it.
PHP
1
star
56

dflydev-theme

Generic Theme Framework
PHP
1
star
57

dflydev-snort-buffer

[READ-ONLY] Subtree split of Dflydev\Snort\Buffer.
PHP
1
star
58

just-run-anything

Allow developers to "just run <anything>" where <anything> may exist at arbitrary paths *or* installed globally.
Shell
1
star
59

dflydev-theme-twig-extension

Theme Twig Extension
PHP
1
star
60

dflydev-doctrine-commands-service-provider

Doctrine Commands Service Provider
PHP
1
star
61

dflydev-composer-autoload

Composer Autoload Tools
PHP
1
star
62

lithe-php-single-site

Lithe - Single Site Application
PHP
1
star
63

raffl.io

CSS
1
star
64

dflydev-wp-theme

dflydev WordPress Theme
PHP
1
star
65

dd-image-php

dd-image is useful for doing simple image manipulation operations.
PHP
1
star
66

page-shortcodes

Page Shortcodes WordPress Plugin
PHP
1
star
67

lithe-php

Lithe - a lightweight web application framework for PHP built on Halo and Substrate
PHP
1
star
68

ddrem

ddRem WordPress Them
PHP
1
star
69

dflydev-core-php

Provides basic bootstrapping functionality such as resource locating and class loading.
PHP
1
star
70

dd-logging-php

Dragonfly Development PHP Logging Library
PHP
1
star
71

dd-uri-php

Dragonfly Development PHP URI Library
PHP
1
star
72

dd-idgen-php

Dragonfly Development PHP ID Generation Library
PHP
1
star
73

lithe-php-multiple-sites

Lithe - Multiple Sites Application
PHP
1
star
74

dflydev-common-domain-model-identity-ramsey

Implementation of identity for domain models using ramsey/uuid
PHP
1
star
75

d2code-core-wp-theme

d2code Core WordPress Theme
PHP
1
star
76

dflydev-identity-generator-dbal

Provides a Doctrine DBAL implemetnation of the identity generator data store.
PHP
1
star
77

dd-core-php

Dragonfly Development PHP Core Library
PHP
1
star
78

dflydev-theme-service-provider

Theme Service Provider
PHP
1
star
79

ddrem-iaous

Imagine Arts One's WordPress Theme. Based on ddRem.
JavaScript
1
star
80

dflydev-psr0-resource-locator-composer-service-provider

Composer PSR-0 Resource Locator Service Provider
PHP
1
star
81

dflydev-snort-textorbinary

[READ-ONLY] Subtree split of Dflydev\Snort\TextOrBinary.
PHP
1
star
82

ddknives

ddKnives WordPress Theme
PHP
1
star
83

dflydev-embedded-composer-bundle

[READ-ONLY] Subtree split of Dflydev\EmbeddedComposer\Bundle.
PHP
1
star
84

ddknives-offloc

Offloc's WordPress Theme. Based on ddKnives.
JavaScript
1
star
85

d2code-dflydev-wp-theme

d2code dflydev WordPress Theme
PHP
1
star