romagny13/flash

MicroPHP Flash 消息库

0.0.1 2017-05-02 15:37 UTC

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

访问https://:8080/

使用方法

示例:添加消息

$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 %}