sapistudio/flash-message

1.0.2 2020-03-19 03:48 UTC

This package is auto-updated.

Last update: 2024-09-12 08:18:30 UTC


README

基于 tamtamchik/simple-flash 进行分支

为 PHP 提供简单、框架无关的闪存通知。灵感来源于 laracasts/flashplasticbrain/PHP-Flash-Messages。它支持多种 CSS 框架

simple-flash

安装

通过 Composer

$ composer require tamtamchik/simple-flash

在您的项目中,确保开始一个会话并加载 Composer 自动加载,以使一切正常工作。

<?php
// Start a Session
if( !session_id() ) @session_start();

// Initialize Composer Autoload
require_once 'vendor/autoload.php';

警告! 此库包含全局 flash() 函数,这可能会破坏您具有相同名称的函数。现在您已经收到警告!

使用方法

有 3 种方式使用此库

use \Tamtamchik\SimpleFlash\Flash;

// Instance
$flash = new Flash();
$flash->message('Tea.');

// Static
Flash::message('Earl Gray.');

// Function
flash()->message('Hot!');

通过调用 message($message, $type = 'info') 方法添加消息。在调用函数 flash() 时,您可以将 $message, $type 传递给函数,如下所示: flash('resistance is futile')

由于任何创建类型都返回 \Tamtamchik\SimpleFlash\Flash 实例,因此您始终可以使用链式调用添加多个消息。所有基本消息类型都有快捷方式,您还可以传递数组作为 $message

flash()->error(['Invalid email!', 'Invalid username!'])
       ->warning('Warning message.')
       ->info('Info message.')
       ->success('Success message!');

默认情况下,库支持 4 种不同类型的消息: errorwarninginfosuccess

<div class="alert alert-danger" role="alert">
  <p>Invalid email!</p>
  <p>Invalid username!</p>
</div>
<div class="alert alert-warning" role="alert"><p>Warning message.</p></div>
<div class="alert alert-info" role="alert"><p>Info message.</p></div>
<div class="alert alert-success" role="alert"><p>Success message!</p></div>

渲染简单

// Rendering specific type
$output = flash()->display('error');

// Rendering all flash
$output = flash()->display();

// Also rendering possible when you just read instance of \Tamtamchik\SimpleFlash\Flash object as a string
(string) flash();

// or ... it's totally just for display, never do this in real life...
<?php
// ... some code
$flash = new Flash();
$flash->warning('It is totally just for display, never do this in real life...');
// ... some other code
?>
<!-- ... some html -->
<div class="flashes">
  <?= $flash; ?>
</div>
<!-- ... some other html -->

模板

模板工厂

此软件包附带一套针对最受欢迎的 CSS 框架的模板

Templates::BASE; // Same as Templates::BOOTSTRAP_3
Templates::BOOTSTRAP_4;
Templates::BOOTSTRAP_3;
Templates::FOUNDATION_6;
Templates::FOUNDATION_5;
Templates::SEMANTIC_2;
Templates::UIKIT_3;
Templates::UIKIT_2;
Templates::SIIMPLE_3;
Templates::SIIMPLE_2;
Templates::SIIMPLE;
Templates::BULMA;
Templates::MATERIALIZE;
Templates::SPECTRE;
Templates::TAILWIND;

这些模板可以使用随软件包提供的 TemplateFactory 创建。所有模板都在 Templates 中定义了别名。

use Tamtamchik\SimpleFlash\Flash;
use Tamtamchik\SimpleFlash\TemplateFactory;
use Tamtamchik\SimpleFlash\Templates;

// get template from factory, e.g. template for Foundation 6
$template = TemplateFactory::create(Templates::FOUNDATION_6);

// passing template via function
flash('Info message using Foundation 6 template!', 'info', $template);

// passing to constructor
$flash = new Flash($template);

// using setTemplate function
$flash->setTemplate($template);

创建自己的模板

模板基本上是任何实现 TemplateInterface 的类。但为了简化,您可以使用 BaseTemplate 扩展,它已经包含了许多函数。

定义和使用此示例类作为模板

use Tamtamchik\SimpleFlash\BaseTemplate;
use Tamtamchik\SimpleFlash\TemplateInterface;

class CustomTemplate extends BaseTemplate implements TemplateInterface
{
    protected $prefix  = '<li>'; // every line prefix
    protected $postfix = '</li>'; // every line postfix
    protected $wrapper = '<ul class="alert-%s">%s</ul>'; // wrapper over messages of same type

    /**
     * @param $messages - message text
     * @param $type     - message type: success, info, warning, error
     *
     * @return string
     */
    public function wrapMessages($messages, $type)
    {
        return sprintf($this->getWrapper(), $type, $messages);
    }
}

flash()
    ->setTemplate(new CustomTemplate)
    ->error(['Invalid email!', 'Invalid username!'])
    ->warning('Warning message.')
    ->info('Info message.')
    ->success('Success message!')
    ->display();

将输出以下内容

<ul class="alert-error">
    <li>Invalid email!</li>
    <li>Invalid username!</li>
</ul>
<ul class="alert-warning">
    <li>Warning message.</li>
</ul>
<ul class="alert-info">
    <li>Info message.</li>
</ul>
<ul class="alert-success">
    <li>Success message!</li>
</ul>

接口

此软件包为 Simple Flash 模板提供 TemplateInterface

变更日志

请参阅 CHANGELOG 了解最近更改的信息。

测试

$ composer tests

示例

$ composer examples

然后只需访问 https://:8000

贡献

请参阅 CONTRIBUTINGCONDUCT 了解详细信息。

安全

如果您发现任何与安全相关的问题,请通过电子邮件 yuri.tam.tkachenko@gmail.com 而不是使用问题跟踪器。

鸣谢

许可证

MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件

Join the chat at https://gitter.im/tamtamchik/simple-flash