volnix / flashy
3.2.1
2017-06-19 16:34 UTC
Requires
- php: >= 5.4
- satooshi/php-coveralls: 0.7.0
- symfony/http-foundation: 2.5.*@dev
Requires (Dev)
- phpunit/phpunit: 3.7.*
README
简单包装器,围绕 Symfony 的 Session 闪存。
预填充数据
当用户输入有错误时,您通常会想要从最后一个请求中预填充表单数据。Flashy 可以接受来自任何来源的输入,无论是来自 POST/GET 还是生成的数组。它使用 Symfony 的 AutoExpireFlashBag 容器,所以数据在每次请求后都会被清除,无论是否读取。
通过调用 set
方法设置表单数据
use Symfony\Component\HttpFoundation\Request; use Volnix\Flashy\FormData; $request = Request::createFromGlobals(); $form_data = new FormData; $form_data->set($request->query->all());
然后调用 get
方法来检索数据,可选地传递一个默认值,如果键未设置则使用此默认值。
use Volnix\Flashy\FormData; $form_data = new FormData; $form_data->set(['foo' => 'bar']); echo $form_data->get('foo'); // bar echo $form_data->get('bim', 'baz'); // baz
要清空表单数据存储,调用 clear
函数
use Volnix\Flashy\FormData; $form_data = new FormData; $form_data->set(['foo' => 'bar']); echo $form_data->set('foo'); // bar $form_data->clear(); echo $form_data->get('foo', 'baz'); // baz
消息
Messages 类将使处理闪存消息变得简单。它与 Bootstrap 3 有关联,用于其警报标记,但这可以轻松覆盖。它还使用 Symfony 的 AutoExpireFlashBag 容器。
使用 __call 魔法方法允许任何类型的消息,以实现最大程度的兼容性。
要设置消息类型,您可以调用任何函数,传入字符串或消息数组,例如:
use Volnix\Flashy\Messages; $messages = new Messages; $messages->error('Oh no!'); $messages->info(['Message one', 'Message two']);
您也可以将消息设置为 [类型 => 消息] 的数组,例如:
use Volnix\Flashy\Messages; $messages = new Messages; $messages->setAsArray(['error' => 'foo');
要作为数组检索它们,请使用 get
函数(如果没有传入参数,它将返回所有消息)
use Volnix\Flashy\Messages; $messages = new Messages; $messages->error('Oh no!'); $messages->info(['Message one', 'Message two']); foreach ($messages->get('error') as $error_message) { echo $error_message; } $all_messages = $messages->get();
真正的魔法发生在您调用 getFormatted
函数时
use Volnix\Flashy\Messages; $messages = new Messages; $messages->error('Oh no!'); $messages->info(['Message one', 'Message two']); // print all the error messages: echo $messages->getFormatted('error'); // print all the messages: echo $messages->getFormatted();
格式化消息以以下标记打印
<div class="alert alert-danger"> <ul> <li>Message one</li> <li>Message two</li> </ul> </div>
要覆盖默认的 Bootstrap 警报语法,将类覆盖数组传递给 getFormatted
函数
use Volnix\Flashy\Messages; $messages = new Messages; $messages->error('Oh no!'); echo $messages->getFormatted('error', ['error' => 'bip']);
将产生以下结果
<div class="bip"> <ul> <li>Oh no!</li> </ul> </div>
Messages 类还支持消息嵌套,例如:
use Volnix\Flashy\Messages; $messages = new Messages; $messages->error(['foo', 'bar' => ['bip', 'bap']]); echo $messages->getFormatted('error');
将产生以下结果
<div class="alert alert-danger"> <ul> <li>foo</li> <li> bar <ul> <li>bip</li> <li>bap</li> </ul> </li> </ul> </div>
要清空消息存储,调用 clear
函数
use Volnix\Flashy\Messages; $messages = new Messages; $messages->set(['foo' => 'bar']); echo $messages->get('foo'); // bar $messages->clear(); echo $messages->get('foo', 'baz'); // baz