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

1.建立应用程序
请参考《《开始创建 QeePHP 应用程序》系列文章》建立一个新的应用程序。
其中命令行执行的内容如下:
|
\qeephp\scrīpts\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 要使用的行为插件 'behavīors' => '',
// 用什么数据表保存对象 '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="<?php echo $data['email']; ?>">E-mail</a> | <a href="<?php echo $data['website']; ?>">Website</a> </div> <div><?php echo $data['content']; ?></div> </div> <?php } ?> </div> <div id="postForm"> <h2>Leave a message</h2> <form id="guestbook" action="<?php echo $this->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),请引入下面这个Javascrīpt:
这么一来我们简单的留言簿就完成了,QeePHP帮我们省下许多的时间,让我们更加的注意应用程序的功能。
注意:其中IE会引入IE8.js来修正排版错误。
原文地址:http://qeeify.com/index.php/2008/03/22/qeephp-tutoeais-guestbook.html
更多信息,请访问 FleaPHP/QeePHP 开源开发框架官方网站:http://www.fleaphp.org/。