PHP教程之利用FleaPHP框架构建复杂留言本使用
第1步环境配置好了,你算了进了1小步了,那么第2步呢 就是调出第1个程序 一般都是用hello world,视频教程里面我都做了,hello world架构 【FleaPHP引见】FleaPHP是国产的一个MVC框架,今朝主流的框架Zend Framework、Symfony、CakePHP,国际还有FCS、Plite等框架都是值得等候的。
咱们看看官方的引见:
FleaPHP 为开辟者轻松、快捷的创立使用法式供应匡助。FleaPHP 框架复杂、明晰,轻易了解和进修,而且有完整中文明的文档和丰厚的示例法式下降进修本钱。利用 FleaPHP 框架开辟的使用法式可以主动顺应各类运转情况,并兼容 PHP4 和 PHP5。FleaPHP 的全名是 Fast-Lightweight-Extensible-Automatic PHP web application framework。
明天我复杂的利用FleaPHP来构建一个复杂的留言本法式来也许懂得以下FleaPHP的运作机制。关于FleaPHP的更多信息会见官方网站:www.fleaphp.org(电信)www.fleaphp.net (网通)。
FleaPHP开辟指南:http://www.fleaphp.net/index.php?q=guide
【构建留言本使用】
1. 数据表布局
留言本的请求对照复杂,就是可以留言、显示留言,这么复杂功效,看以下数据表布局:
--
-- 表的布局 `guestbook`
--
CREATE TABLE `guestbook` (
`id` int(10) NOT NULL auto_increment,
`nicker` varchar(50) NOT NULL default '',
`email` varchar(100) default NULL,
`url` varchar(100) default NULL,
`content` text NOT NULL,
`created` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY(`id`)
) TYPE=MyISAM ;
2. 法式目次布局
全部留言本法式的布局是如许的:
/Fleaphp/ ----根基框架目次
/Guestbook ----留言本根目次
/Guestbook/Config ----设置装备摆设文件目次
/Guestbook/Model ----模子层文件目次
/Guestbook/View ----显示层文件目次
/Guestbook/Controller ----掌握层文件目次
3. 设置装备摆设文件
我先构建设置装备摆设文件,用来保留数据库的根基设置装备摆设信息,设置装备摆设文件途径是: /Guestbook/Config/DSN.config.php
<?php
/**
* DSN
* 数据源设置装备摆设文件
*/
return array(
'dbDSN' => array(
'driver' => 'mysql',
'host' => 'localhost',
'login' => 'root',
'password'=> '',
'database' => 'test'
)
);
?>
4. 法式进口点(首页)
咱们再来构建首页,就是咱们一切使用的进口法式: /Guestbook/index.php
<?php
//======================================
// Name: Gueskbook
// Desc: first fleaphp application
//======================================
//包括文件
define("APP_DIR", dirname(__FILE__));
define("VIEW_DIR", APP_DIR ."/View/");
require_once("../FLEA/FLEA.php");
//载入DSN设置装备摆设文件
$dsnConfigFile = './Config/DSN.config.php';
register_app_inf($dsnConfigFile);
import(dirname(__FILE__));
//履行
run();
?>
大致咱们看就是设置装备摆设APP_DIR常量,然后加载根基的FleaPHP框架文件和数据源设置装备摆设信息,然后增添一个类搜刮目次,最初履行run() 来运转全部法式。
5. 掌握器(Controller)
如今来看看咱们的次要器材,掌握器(Controller): /Guestbook/Controller/Default.php
<?php
/**
* 缺省掌握器
*/
class Controller_Default extends FLEA_Controller_Action
{
/**
* 留言本Model
*/
var $_modelGB;
/**
* 机关函数
*/
function Controller_Default(){
$this->_modelGB =& get_singleton("Model_GB");
}
/**
* 缺省action
*/
function actionIndex(){
$posts = $this->_modelGB->findAll(null, 'created DESC');
include("View/index.php");
}
/**
* 拔出一条留言
*/
function actionCreate(){
$createArr = array(
'nicker' => htmlspecialchars($_POST),
'email' => htmlspecialchars($_POST),
'url' => htmlspecialchars($_POST),
'content' => nl2br(htmlspecialchars($_POST)),
);
$this->_modelGB->create($createArr);
redirect($this->_url());
}
}
?>
咱们的掌握器Controller_Default 是个缺省的掌握器,它从 FLEA_Controller_Action 类承继了一切的属性和办法用于本人的掌握。Controller_Default 类包括三个办法,机关函数是用来初始化一个Model类,actionIndex() 是缺省的举措办法,它从掌握器 Model_GB 里把一切的留言提掏出来,然后经由过程 View/index.php 文件来停止显示界面。actionCreate() 办法是创立一条留言的举措,就是机关好一个数据库,key是字段名,value是字段值的模式的数组,提交给 Model_GB 模子来停止处置,拔出到数据库傍边。
6. 模子层(Model)
咱们再来看看模子层(Model)都完成一些甚么代码:/Guestbook/Model/GB.php
<?php
//======================
//GuestBook Model
//======================
load_class("FLEA_Db_TableDataGateway");
class Model_GB extends FLEA_Db_TableDataGateway
{
/**
* 数据表称号
*/
var $tableName = 'guestbook';
/**
* 数据表主键
*/
var $primaryKey = 'id';
}
?>
咱们看,模子代码十分复杂,就是一个承继了 FLEA_Db_TableDataGateway 类的 Model_GB 类,而且没有任何办法代码,只要两个属性,一个 $tableName 纪录留言表的称号,$primaryKey 纪录内外面的主键字段。
7. 显示层(View)
最初看看你咱们用户可以检查到的显示层(View)的完成HTML: /Guestbook/View/index.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html>
<head>
<title>留言本</title>
<meta name="keywords" content="">
<meta name="description" content="">
<link rel="stylesheet" href="view/resource/css/gb2.css">
<style>
*{
margin:0;
padding:0;
}
body{
width:760px;
height:100%;
margin:10px auto 10px;
font-size:12px;
}
#main{
width:758px;
border:1px solid;
background-color:#eee;
}
#posts{
height:200px;
text-align:center;
font-size:12px;
}
#posts input, #posts textarea{
border:1px solid;
}
#posts h2{
padding:10px;
text-align:center;
font-size:14px;
}
#content-list{
text-align:center;
}
#content-list h2{
margin-left:70px;
padding:10px;
text-align:left;
font-size:14px;
}
.tbl-style{
display:block;
width:600px;
background-color:#ccc;
margin-bottom:10px;
padding:0 5px 0 5px;
border:1px solid green;
}
.td1-style{
width:38px;
text-align:left;
line-height:20px;
}
.td2-style{
width:100px;
text-align:left;
line-height:20px;
}
.td3-style{
width:450px;
text-align:left;
padding:10px;
}
</style>
<script language="javascript">
function checkForm(){
var o = document.getElementById("guestbook");
if (o.nicker.value == ''){
alert('必定要输出昵称哦。。。');
o.nicker.focus();
return false;
}
if (o.content.value == '' && o.content.value.length<10){
alert('恩,留言内容总要输吧,我感觉起码不克不及要少于10个字,否则咋叫留言捏。。。');
o.content.focus();
return false;
}
return true;
}
</script>
</head>
<body>
<div id="main">
<div id="posts">
<h2>留言本</h2>
<form action="<? echo $this->_url('create'); ?>" method="post" name="guestbook" id="guestbook" >
昵称:<input type="text" size="15" name="nicker" id="nicker" />
邮箱:<input type="text" size="20" name="email" id="email" />
网站:<input type="text" size="20" name="url" id="url" /><br /><br />
<textarea name="content" id="content" rows="10" cols="80"></textarea><br /><br />
<input type="submit" value="即刻留言" />
</form>
</div>
<div id="content-list">
<h2>留言列表</h2>
<? foreach($posts as $gb){ ?>
<table class="tbl-style">
<tr>
<td class="td1-style">昵称:</td><td class="td2-style"><?=$gb?></td>
<td class="td1-style">邮箱:</td><td class="td2-style"><?=$gb?></td>
<td class="td1-style">网站:</td><td class="td2-style"><?=$gb?></td>
</tr>
<tr>
<td class="td1-style">留言:</td><td class="td3-style" colspan="5"><?=$gb?></td>
</tr>
</table>
<? } ?>
</div>
</div>
</body>
</html>
8. 完成后果图
总的布局就出来了,咱们看以下运转了局的图片:
图片地址:/XrssFile/2007-1/25/200712510335349.jpg
(不晓得为何CSDN不克不及传图片了,所以放到我百度空间里)
3、停止
更多使用请参考FleaPHP的官方网站和下载源码中的示例法式,本人亲身测验考试以下,或许,这个框架就是合适你的。
在这里想谈谈自己这六个多月的PHP学习心得,希望对给比我还新的新手们有所帮助,讲的不是很深刻,甚至有的想法可能是错误的,希望不要误导新人才好,大家要有自己的主见。 学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql 兴趣是最好的老师,百度是最好的词典。 如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域, 这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己 对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。 对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。 多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。 Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81 做为1门年轻的语言,php一直很努力。 有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。 你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。 不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。 写的比较杂,因为我也是个新手,不当至于大家多多指正。 没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。 环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。 环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。 微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox支持的不是很好,所以能少用还是少用的好。 微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox支持的不是很好,所以能少用还是少用的好。 在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
页:
[1]