namshi / google-doc-configuration-bundle
Configure the dependency injection container of your Symfony2 applications with a Google Doc. Crazy, ahm?
Installs: 9 033
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 34
Forks: 0
Open Issues: 0
Requires
- namshi/gvalue: ~1.0
This package is not auto-updated.
Last update: 2024-11-19 02:23:57 UTC
README
Configure your Symfony2 container from a Google Doc. Sounds crazy but it's even worse.
This bundle will let you use a Google Doc to store key-value pairs and re-use them within your Symfony2 app: this means that any human capable with interacting with a spreadsheet can play around and configure your app.
The values are "public", in the sense that you will need to share the Google Doc ("Publish to the web") so anyone with the link can access it, even though guessing the URL of the doc isn't trivial.
In any case, you should use this tecnique to store things like
- cache TTL
- products per page
- banner URLs
and so on and so fort. Do not store passwords or sensitive data there.
Installation
You can easily install this library through composer:
"namshi/google-doc-configuration-bundle": "dev-master"
Configuration
Simply define the config service, here we are using Redis and gvalue to store config values from Google Docs to Redis and read the cached values from a redis hash for performances:
parameters: namshi_google_doc_configuration.config.google_doc_key: 123456 services: config: class: Namshi\GoogleDocConfigurationBundle\Config\RedisConfig arguments: [@namshi_google_doc_configuration.predis, 'namshi.config', true]
The Google Doc key can be found from the URL of your Google Doc, which is something like
https://docs.google.com/a/namshi.com/spreadsheet/ccc?key=123456&usp=drive_web#gid=0
, where
123456
is the key of the document.
To check the format of the doc have a look at the example one.
Then secure the 2 routes that the bundle exposes,
in the security.yml
:
utility: pattern: (^/namshi/update-config)|(^/namshi/config) http_basic: provider: ...
You can then check http://domain.example/namshi/config
to check your configuration
and http://domain.example/namshi/update-config
to update it from
the Google Doc.
Storing the config in different ways
We use Redis but you are free to implement the ConfigInterface and have fun with it.
Transforming values
If you need to process / transform values out of the Google Do, ie. transforming
"false"
to false
you can simply define a namshi_google_doc_configuration.transformer
service and let it implement the TransformerInterface.
This is probably not so clean but you can live with it, for now :)