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.
-
Add this project composer.json:
"require": { "eye4web/zf2-site-config": "dev-master" }
-
Now tell composer to download the module by running the command:
$ php composer.phar update
-
Enable it in your
application.config.php
file.<?php return array( 'modules' => array( // ... 'Eye4web\SiteConfig' ), // ... );
-
Copy
config/eye4web.siteconfig.global.php.dist
toconfig/autoload/eye4web.siteconfig.global.php
-
Edit the config to fit your needs
It is very easy to get config values, anywhere in your files.
To get a config value in a view-file(or layout): $this->siteConfig($configKey, $default)
$default
is optional
To get a config value in a controller: $this->siteConfig($configKey, $default)
$default
is optional
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;
class YourAwesomeService
{
use SiteConfigAwareTrait;
}
- Now you can do
$this->getSiteConfigService()->get($configKey, $default)
,$default
is optional
See config/eye4web.siteconfig.global.php.dist
for configurable values
The modules supports many different readers, by deault it uses DoctrineORMReader
This reader reads config values from your database. This module is setup to use DoctrineORM by default, so all you have to do is
- 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
- Use the doctrine script:
- Add your config values to the database. You only have to fill
key
andvalue
, the rest of the fields are just convenience fields
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:
- Create your file and add your config values
- 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
It is very easy to create your own reader, just follow these steps:
- Create your reader. It must implement
Eye4web\SiteConfig\Reader\ReaderInterface
- Add your reader to the service-manager
- Edit
eye4web.siteconfig.global.php
and set the name of your reader - Make a pull-request so others can benefit from your reader ;)