paaa14 / c-flash-message
添加 Flash-Message 功能
Requires
- php: >=5.3.0
This package is not auto-updated.
Last update: 2024-09-20 18:03:16 UTC
README
这是一个简单的 flash-message 模块。它通常包含三个功能
setFlash('type', 'message')
:允许的类型:success、notice、warning 和 error。
hasFlash()
:如果设置了 flash,则返回 true,否则返回 false。
getFlash()
:获取 flashMessage。
如何使用 CFlashMessage
1. 通过 composer 安装
通过 Packagist 和 composer 安装 CFlashMessage。在您的 composer.json
中添加以下内容。
"require": {
"php": ">=5.4",
"paaa14/c-flash-message" : "dev-master"
},
在您的 composer.json
中添加以下内容。
2. 设置 FlashMessage 类
在您的基类中设置 flashMessage 实现 Dependency Injection / Service Locator 文件。如果您使用 Anax-MVC,例如。
文件:src/DI/CDIFactoryDefault.php
添加 $this->setShared('flashMessage', '\Anax\FlashMessage\CFlashMessage')
(您可能想更改 CFlashMessage.php
的命名空间)
3. 在模板文件中实现代码
文件: theme/anax-base/index.tpl.php
在您的 div#main 中放入代码
<?php if($this->flashMessage->hasFlash()) : ?>
<?php $message = $this->flashMessage->getFlash(); ?>
<div class="<?=$message['type']?>"><?=$message['message']?></div>
<?php endif; ?>
检查是否设置了 flash。如果它返回 true,则显示 flashMessage。
示例
<div id='main'>
<?php if(isset($main)) echo $main?>
<?php $this->views->render('main')?>
<?php if($this->flashMessage->hasFlash()) : ?>
<?php $message = $this->flashMessage->getFlash(); ?>
<div class="<?=$message['type']?>"><?=$message['message']?></div>
<?php endif; ?>
</div>
4. 添加样式表
将 flash.css
复制到您的 css 存档中,并确保在您的框架中激活了 flash.css
。
5. 会话
确保您的框架已激活会话。如果您使用 var_dump($_SESSION)
,您应该有一个空的会话。如果您使用 Anax-MVC,您可能需要在 frontcontroller 中手动启动会话。
在分配 $app
之后,在控制器顶部放置 $app->session()
6. 路由器
确保您的框架处理路由。如果您使用 Anax-MVC,请在 frontcontroller 的末尾放置 $app->router->handle()
,在它被发送到渲染之前。
7. 创建路由并使用 FlashMessage
Anax-MVC 中的示例
$app->router->add('', function() use ($app) {
$app->flashMessage->setFlash('success', "Success! Update page to make this message disappear.");
$app->views->addString('Flash is set, click on the link to view the flash', 'main');
$app->views->addString("<a href='" . $app->url->create('flash') . "'>Link</a>", 'main');
});
$app->router->add('flash', function() use($app) {
$app->views->addString('In your template-file, there is a if-statement that checks if a flash has been set. If it returns TRUE, this message is shown. Update page to remove this message.');
});
要获取 Anax-MVC,请访问:https://github.com/mosbth/Anax-MVC
欢迎使用 :)