Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1187112
  • 博文数量: 89
  • 博客积分: 10546
  • 博客等级: 上将
  • 技术积分: 1510
  • 用 户 组: 普通用户
  • 注册时间: 2004-10-16 01:24
文章分类

全部博文(89)

文章存档

2012年(7)

2011年(4)

2010年(5)

2009年(52)

2008年(21)

分类:

2008-10-23 09:31:52

很多语言或者框架入门的第一个演示程序,就是Hello world。
但我并不打算这么做,这里以创建一个简单的Blog程序为例。

CakePHP 是一个以数据库主导设计的框架,所以,我们首先要创建相应的表。
在数据库cakeblog 中创建一个名为posts的表,创建语句如下。

CREATE TABLE `posts` (
  `id` int(11) NOT NULL auto_increment,
  `content` text NOT NULL,
  `created` date default NULL,
  `modified` date default NULL,
  `author` varchar(100) NOT NULL,
  `name` varchar(100)  default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB

你可以使用MySQL客户端工具来创建,也可以使用NetBeans 的数据库工具来完成。
创建model。

在cakeblog 项目结点,选择app/models。
右键点击models ,选择File->new File 。
在对话框中,Categories 中选择PHP, File Types 中选择PHP Class 。

点击Next 进入下一步, 在Name and Location 中输入下面内容。
Name:post.php
Project:cakeblog
Folder ,选择app/models

点击Finish 完成操作。
在文件中输入收下内容。

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
class Post extends AppModel{
    var $name='Post';
}
?>


类Post 继承 AppModel,它与数据库的表posts对应,文件中还指定了一个属性$name。
在CakePHP约定,数据表名以复数小写出现。而相应的Model 的文件名单数小写app/models/post.php,类名是单数首字母大写,遵循CamelCase 原则。如果是多个单词组成,则表名和文件都以下划线隔开。
如表为blog_posts,model的文件名为blog_post.php,类名为BlogPost。
第一次看起来真有点头晕。

创建Controller 。
按上面的方法在app/controllers中创建一个PHP类,名为posts_controller.php。

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
class PostsController extends AppController{
    var $name='Posts';

}
?>


在CakePHP中约定,一个controller 文件是以_controller.php结尾。类名以Controller结尾,也遵循CamelCase原则。一般情况下一个Controller 依赖相应的model,这里,PostsController依赖Post这个Model。注意,这里文件名和类名都使用了复数。如果想在使用其它 model,可在controller 中指定属性var $uses=array('Post','Comment');,通过一个数组指定其它model。

在Controller 中,一个function 对应一个action 。
创建第一个 action 方法。

function index() {
        $this->set("msg","Hello CakePHP");
}


创建view 。
在app/views下新建一个posts目录,在下面新建一个index.ctp模板文件。CakePHP 模板文件使用的是标准的php script,不需要学习额外的技术。
index.ctp 文件内容如下。



在CakePHP中约定,一个Controller 所对应的View 文件都放在Controller 名称(小写)的目录中,每个view 文件的文件名都是Controller 的方法名,扩展名为ctp 。
打开浏览器,输入地址http://localhost/cakeblog/posts/index,就可以看到Hello CakePHP信息了。
我们看一下请求的url,localhost是域名,cakeblog是应用程序名(这里是项目名称一致),posts是Controller的名 称,CakePHP的内置的dispatcher 会找到相应的Controller类,即PostsController ,index是posts对应的action。
阅读(2206) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~