ldrahnik / theme-keeper
This package is abandoned and no longer maintained.
The author suggests using the kappa/themes-manager package instead.
Keeper of themes.
v1.1.1
2015-04-05 17:49 UTC
Requires
- php: >= 5.4
- ldrahnik/url-matcher: ~1.0
- ldrahnik/view-keeper: ~2.0
- nette/di: ~2.2.0
Requires (Dev)
- nette/tester: ~1.3
This package is not auto-updated.
Last update: 2022-02-01 12:45:57 UTC
README
Strongly recommend use Kappa/ThemesManager.
If you use Modules
structure Kappa/ThemesManager is more effective if not that is still better. Forgot on this package it was just attempt. Is deprecated and will not be more developed.
ldrahnik/theme-keeper
Keeper of app themes.
Requirements
ldrahnik/theme-keeper requires PHP 5.4 or higher.
Installation
Install theme keeper to your project using Composer:
$ composer require ldrahnik/theme-keeper
Usage
Register extension in config file
extensions: themes: ThemeKeeper\DI\ThemeKeeperExtension
Example
themes: default: themeDir: %themesDir%/<themeName> assetsDir: <themeDir>/assets views: controls: <themeDir>/controls/<name>/<view> presenters: <themeDir>/presenters/<name>/<view> layouts: <themeDir>/@<view>
/** * @var \ThemeKeeper\ThemeKeeper * @inject */ private $themes; public function __construct(ThemeKeeper\ThemeKeeper $themes) { $this->themes = $themes; } public function render() { $this->template->setFile($this->themes->getView($this->name, 'controls')); $this->template->render(); // you can cast getView without getTheme('default') because default name is automatically default // theme for short use as that, if is not set up name 'default', is choosen first theme in order }
Is able to set up path via these patterns (don't count patterns through view-keeper - substitution is done successively)
<themeName> <assetsDir> <themeDir>
Summary
- Template-keeper uses View-keeper but view-keeper as extension have still good use, for example Mail templates are the same for entire app.
- Crossing from small app with view-keeper to something bigger is not hard because is possible to let code as it's, just use another service.