文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>QeePHP基础教学-建置留言簿

QeePHP基础教学-建置留言簿

时间:2008-04-12  来源:qeeify


大家好,认识一下大家吧!其实我是新来的作者^_^
首先要说的是,因为我是台湾人,所以如果用词无法理解请一定要跟我说,我会改进。当然现在直接进入正题──建置留言簿。这个例子采用《
[转]使用FleaPHP框架构建简单留言本应用
》做为基础,然后改由QeePHP完成任务。
2008-03-23: 修改Controller以及Model部分。
先看看结果吧:

1.建立应用程序
请参考《
《开始创建 QeePHP 应用程序》系列文章
》建立一个新的应用程序。
其中命令行执行的内容如下:
\qeephp\scripts\chili.bat 应用程序名称

2.建立数据表
执行SQL语法:
CREATE TABLE IF NOT EXISTS `guestbooks` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `nickname` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
  `email` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
  `website` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
  `content` text COLLATE utf8_unicode_ci NOT NULL,
  `created` int(10) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=16;

3.建立配置文件
我们修改\config\environments\database.yaml.php里面的「devel模式」数据库连接信息。
如果之后无法加载QeePHP的话,请修改\config\environments\database.yaml.php里面的QeePHP位置。
4.建立控制器(controller)
控制器我们无须建立,使用默认即可。
我们在\app\controller\default_controller.php输入以下代码:
?php
class Controller_Default extends QController_Abstract {
    /**
     * Constructor
     */
    function __construct() {
        parent::__construct(MyApp::instanc());// 这里我不知道有没有更好的写法。
    }
    /**
     * Index
     */
    protected function actionIndex() {
        $this->view = array(
            'guestbook' => Guestbook::find()->all()->order("id DESC")->asArray()->query()
        // 此为QeePHP的贯串接口,開啟尋找->全部->排序->陣列處理->查询输出。
        );
    }
    /**
     * Create
     */
    protected function actionCreate() {
        $create = new Guestbook();
        $create->nickname = htmlspecialchars($this->request->nickname);
        $create->email = htmlspecialchars($this->request->email);
        $create->website = htmlspecialchars($this->request->website);
        $create->content = htmlspecialchars($this->request->content);
        $create->save();
        return new QResponse_Redirect($this->url->make());// 立刻返回本页的留言列表。
    }
?>

5.建立模型(model)
建立一个档案:\app\model\guestbook.php。
内容如下:
class Guestbook extends QDB_ActiveRecord_Abstract {
    /**
     * 返回对象的定义
     *
     * @static
     *
     * @return array
     */
    static function __define() {
        return array(
            // 指定该 ActiveRecord 要使用的行为插件
            'behaviors' => '',
            // 用什么数据表保存对象
            'table_name' => 'guestbook',
            // 指定数据表记录字段与对象属性之间的映射关系
            // 没有在此处指定的字段,QeePHP 会自动设置将字段映射为对象的可读写属性
            'fields' => array(
                // 主键应该是只读,确保领域对象的“不变量”
                'id' => array('readonly' => true),
                // 对象创建时间应该是只读
                'created' => array('readonly' => true),
            ),
        );
    }
    /**
     * 开启一个查询,查找符合条件的对象或对象集合
     *
     * @static
     *
     * @return QDB_ActiveRecord_Select
     */
    static function find() {
        $args = func_get_args();
        return parent::__find(__CLASS__, $args);
    }
    /**
     * 实例化所有符合条件的对象,并调用这些对象的 destroy() 方法,返回成功删除的对象的数量
     *
     * @static
     *
     * @param mixed $where
     *
     * @return int
     */
    static function destroyWhere() {
        $args = func_get_args();
        return parent::__destroyWhere(__CLASS__, $args);
    }
    /**
     * 对数据进行验证,返回所有未通过验证数据的名称错误信息
     *
     * @param array $data
     * @param array|string $fields
     *
     * @return array
     */
    static function validate(array $data, $props = null) {
        return parent::__validate(__CLASS__, $data, $props);
    }
}

这么Easy?没错,QeePHP帮我们把大量繁琐的事物处理好了。
6.建立视图(view)
视图放在\app\view\default\index.php,其中default为控制器名称,index为动作名称。
h1>::Guestbook::/h1>
    div id="messageList">
        h2>Message List/h2>
        ?php foreach($guestbook as $data) {?>
        div class="content">
            div>
                span class="nickname">Nickname:
                ?php echo $data['nickname']; ?>/span>
                 [ ?php echo date("Y-m-d", $data['created']); ?> ] |
                a href="">E-mail/a> |
                a href="">Website/a>
            /div>
            div>?php echo $data['content']; ?>/div>
        /div>
        ?php } ?>
    /div>
    div id="postForm">
        h2>Leave a message/h2>
        form id="guestbook" action="url->make(null, 'Create'); ?>" method="post" onsubmit="return checkForm()">
            p>label for="nickname">Nickname/label>input id="nickname" name="nickname" type="text" size="20" />/p>
            p>label for="email">E-mail/label>input id="email" name="email" type="text" size="20" />/p>
            p>label for="website">Website/label>input id="website" name="website" type="text" size="20" />/p>
            p>textarea id="content" name="content" rows="10" cols="65">/textarea>/p>
            p>input type="submit" value="Submit" />/p>
        /form>
    /div>

7.建立模板(layout)
再来建立模板:\app\view\_layouts\default_layout.php,将下面的样式写在default_layout.php。
CSS:
7.建立模板(layout)
再来建立模板:\app\view\_layouts\default_layout.php,将下面的样式写在default_layout.php。
CSS:

如果使用IE7以下(不含IE7),请引入下面这个JavaScript:
http://ie7-js.googlecode.com/svn/version/2.0(beta3)/IE8.js

这么一来我们简单的留言簿就完成了,QeePHP帮我们省下许多的时间,让我们更加的注意应用程序的功能。
注意:其中IE会引入IE8.js来修正排版错误。

原文地址:
http://qeeify.com/index.php/2008/03/22/qeephp-tutoeais-guestbook.html
更多信息,请访问 FleaPHP/QeePHP 开源开发框架官方网站:
http://www.fleaphp.org/



相关阅读 更多 +
排行榜 更多 +
粉末星战 v1.0.0 安卓版

粉末星战 v1.0.0 安卓版

休闲益智 下载
粉末星战 v1.0.0 安卓版

粉末星战 v1.0.0 安卓版

休闲益智 下载
火线反恐部队 v1.2 安卓版

火线反恐部队 v1.2 安卓版

飞行射击 下载