Giter VIP home page Giter VIP logo

zf2-site-config's Introduction

Eye4web\SiteConfig

Build Status Code Climate Test Coverage Latest Stable Version License Total Downloads

Introduction

This modules allows you to easily get site config in all of your files. The module can, out-of-the-box, read config values from the following:

  • DoctrineORM
  • Files(supported by \Zend\Config\Reader)
    • ini
    • json
    • xml
    • yaml
    • javaproperties
    • php array

Note: This module does not help you write the config, you have to take care of that yourself.

Installation

  1. Run the followng composer command:

    $ composer require eye4web/zf2-site-config:dev-master
  2. Enable it in your application.config.php file.

    <?php
    return array(
        'modules' => array(
            // ...
            'Eye4web\SiteConfig'
        ),
        // ...
    );
  3. Copy config/eye4web.siteconfig.global.php.dist to config/autoload/eye4web.siteconfig.global.php

  4. Edit the config to fit your needs

Usage

It is very easy to get config values, anywhere in your files.

View

To get a config value in a view-file(or layout): $this->siteConfig($configKey, $default) $default is optional

Controller

To get a config value in a controller: $this->siteConfig($configKey, $default) $default is optional

Any file from service-manager

This module comes with an initializer, so to get the SiteConfigService into a file, all you have to do is

  • Make your file implement Eye4web\SiteConfig\Service\SiteConfigAwareInterface
  • Use the trait Eye4web\SiteConfig\Service\SiteConfigAwareTrait
namespace YourModule\Service;

use Eye4web\SiteConfig\Service\SiteConfigAwareTrait;
use Eye4web\SiteConfig\Service\SiteConfigAwareInterface;

class YourAwesomeService implements SiteConfigAwareInterface
{
    use SiteConfigAwareTrait;
}
  • Now you can do $this->getSiteConfigService()->get($configKey, $default), $default is optional

Configuration

See config/eye4web.siteconfig.global.php.dist for configurable values

Readers

The modules supports many different readers, by deault it uses DoctrineORMReader

DoctrineORM

This reader reads config values from your database. This module is setup to use DoctrineORM by default, so all you have to do is

  1. Create schema
    • Use the doctrine script: php ./vendor/bin/doctrine-module orm:schema-tool:update --force or
    • Create the table yourself, see data/sql folder for schema
  2. Add your config values to the database. You only have to fill key and value, the rest of the fields are just convenience fields

Files

This module uses Zend\Config to read config from files. It can read config from the following file types:

  • ini
  • json
  • xml
  • yaml
  • javaproperties
  • php array

To read config from a file, all you have to do is:

  1. Create your file and add your config values
  2. Edit eye4web.siteconfig.global.php and set the path to your config file

You can read config from a single file, but you can also read from multiple files, just use an array of file names instead of a single string

Create-your-own

It is very easy to create your own reader, just follow these steps:

  1. Create your reader. It must implement Eye4web\SiteConfig\Reader\ReaderInterface
  2. Add your reader to the service-manager
  3. Edit eye4web.siteconfig.global.php and set the name of your reader
  4. Make a pull-request so others can benefit from your reader ;)

zf2-site-config's People

Contributors

danielss89 avatar apaikens avatar samsonasik avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.