sapistudio / flash-message
Requires
- php: >=5.4.0
This package is auto-updated.
Last update: 2024-09-12 08:18:30 UTC
README
基于 tamtamchik/simple-flash 进行分支
为 PHP 提供简单、框架无关的闪存通知。灵感来源于 laracasts/flash 和 plasticbrain/PHP-Flash-Messages。它支持多种 CSS 框架
- Bootstrap 4
- Bootstrap 3(默认)
- Foundation 6
- Foundation 5
- Semantic UI 2
- Siimple 3
- Siimple 2
- Siimple
- UIKit 3
- UIKit 2
- Bulma
- Materialize
- Spectre.css
- Tailwind
安装
通过 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 种不同类型的消息: error
、warning
、info
、success
。
<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
贡献
请参阅 CONTRIBUTING 和 CONDUCT 了解详细信息。
安全
如果您发现任何与安全相关的问题,请通过电子邮件 yuri.tam.tkachenko@gmail.com 而不是使用问题跟踪器。
鸣谢
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件。