romagny13 / flash
MicroPHP Flash 消息库
0.0.1
2017-05-02 15:37 UTC
Requires (Dev)
- phpunit/phpunit: ^5.7
- twig/twig: ~1.0
This package is not auto-updated.
Last update: 2024-09-23 16:16:38 UTC
README
安装
composer require romagny13/flash
如何运行示例
示例:使用 Twig、Bootstrap 3、Animate.css 和 Toastr
composer install
composer start
使用方法
示例:添加消息
$flash = new \MicroPHP\Flash\Flash(); $flash ->addMessage('success','<strong>Success!</strong> <i>Message 1</i>') ->addSuccess('Success message 2') ->addMessage('warning','Warning message 1') ->addWarning('Warning message 2') ->addMessage('error','Error message 1') ->addError('Error message 2') ->addMessage('notification','My notification');
检查是否有消息
$hasSuccessMessages = $flash->hasSuccess(); $hasSuccessMessages = $flash->hasWarning(); $hasSuccessMessages = $flash->hasError(); $hasMessages = $flash->has('notification');
使用以下方式获取消息
$successMessages = $flash->getSuccessMessages(); $warningMessages = $flash->getWarningMessages(); $errorMessages = $flash->getErrorMessages(); $myMessages = $flash->getMessages('notification');
仅获取第一条消息
$successMessage = $flash->getSuccess(); $warningMessage = $flash->getWarning(); $errorMessage = $flash->getError(); $myMessage = $flash->getMessage('notification');
使用 Twig 1.0
注意: Twig 2.0 需要 PHP 7
安装 Twig
composer require twig/twig:~1.0
使用 Twig_Loader_Filesystem 渲染
<?php class TwigRenderer { public $twig; public function __construct($templateDirectory) { $loader = new Twig_Loader_Filesystem($templateDirectory); $this->twig = new Twig_Environment($loader); } public function render($viewPath, $params=[]){ echo $this->twig->render($viewPath,$params); } }
使用模板目录路径创建渲染器。创建一个带有 flash 实例的全局变量并渲染页面。
$renderer = new TwigRenderer(__DIR__.'/templates'); $renderer->twig->addGlobal('flash', $flash); $renderer->render('home.twig');
在视图(例如一个部分)中
{% if flash.hasSuccess() %} <div class="alert alert-success"> {{ flash.getSuccess() }} </div> {% endif %} {% if flash.has('error') %} <div class="alert alert-danger"> {{ flash.getMessage('error') }} </div> {% endif %}
或使用多条消息,例如
{% if flash.has('success') %} {% for message in flash.getMessages('success') %} <div class="alert alert-success fadeIn animated"> {{ message }} </div> {% endfor %} {% endif %}