paaa14/c-flash-message

该包的最新版本(v1.0)没有可用的许可证信息。

添加 Flash-Message 功能

v1.0 2016-03-18 09:25 UTC

This package is not auto-updated.

Last update: 2024-09-20 18:03:16 UTC


README

build:passed

Scrut

CodeCoverage

这是一个简单的 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

欢迎使用 :)