博客教程

    这个教程将引导你创建一个简单的博客应用。我们将会获取和安装 CakePHP,建立并配置数据库,创建足够的应用逻辑去列出博客文章清单,添加、编辑和删除博客文章。

    这是你所需要的:

    • 一个运行中的 web 服务器。我们将假定你使用的是 Apache,虽然使用其它 web 服务器的步骤也差不多。我们可能需要对服务器的配置作一些调整,但大部分人不需要改动任何配置就可以让 CakePHP 跑起来。请确保你的 PHP 是5.2.8或更高版本。
    • 一个数据库服务器。在本教程中我们将使用 MySQL 数据库。你需要对 SQL 有足够的了解,以便创建一个数据库:CakePHP 将从这里接管数据库。既然我们使用 MySQL,请确保你在PHP 中开启了 模块。
    • 最后, 你将需要对 MVC 编程模式有基本的了解。这里有一个简介理解模型-视图-控制器(MVC)。别怕,只是半页而已。
      让我们开始吧!

    首先,让我们获取一份最新的 CakePHP 代码的拷贝。

    要获得最新的代码,请访问在 GitHub 上的 CakePHP 项目: ,并下载2.0的最新发行版本。

    你也可以用 git 检出(clone)最新的代码。git clone git://github.com/cakephp/cakephp.git

    不管你是通过什么方式下载的,将下载后的代码放到你的文档根目录(DocumentRoot)里。完成后,你的目录应当象这样:

    现在也许是个适当的时机去了解一下 CakePHP 的目录结构是如何组织的,请参阅 一节 。

    1. $ chown -R www-data app/tmp

    如果因为某些原因 CakePHP 不能写入到该目录, 你将看到警告和缓存数据无法写入的未捕获异常。

    下一步,让我们建立博客的数据库。如果还没有做这些,就为本教程创建一个空的数据库,名字随便起。现在我们要创建一个表来存储我们的文章,然后再添加几篇文章作测试用。在数据库里面执行下面的 SQL 语句:

    表和列的名字并不是随意取的。如果你遵循 CakePHP 的数据库命名约定,以及类的命名约定(二者都在 CakePHP 的约定 做了介绍),你将可以利用许多现成的功能并免去配置的麻烦。CakePHP 足够灵活,可以适应即使最糟糕的旧式(legacy)数据库结构,不过遵循约定可以节省时间。

    请查看 以获得更多的信息,但我只想说,命名数据库表为'posts',将会自动把它连接到模型 Post,并且 CakePHP 将自动管理表的'modified'和'created'字段。

    接下来,让我们告诉 CakePHP 我们的数据库放在那里以及如何连接。对于许多人来说,这将是第一次也是最后一次进行任何配置。

    /app/Config/database.php.default 是一份 CakePHP 配置文件的拷贝。在同一目录中拷贝这个文件,但重命名为 database.php

    该配置文件应该很简单:仅仅替换掉 数组中相应的值为你的数据库设置。一个完整的配置例子看起来应该是这样:

    1. public $default = array(
    2. 'datasource' => 'Database/Mysql',
    3. 'persistent' => false,
    4. 'host' => 'localhost',
    5. 'port' => '',
    6. 'login' => 'cakeBlog',
    7. 'database' => 'cake_blog_tutorial',
    8. 'schema' => '',
    9. 'prefix' => '',
    10. 'encoding' => 'utf8'
    11. );

    注解

    记住如果你需要使用 PDO,你需要在 php.ini 中启用 pdo_mysql 模块。

    这里还有一些其他的选项可以设置。大多数开发者都会完成这些设置,不过它们在本教程中并不是必须的。一是定义一个定制字符串(或者叫"salt",译者注:salt 是密码保护中用于生成密码哈希的一个随机字符串)用于安全哈希,二是定义一个定制数(或者叫"seed")用于加密。

    安全字符串(security salt)用于生成哈希。在 /app/Config/core.php 中改变Security.salt 的值。新的值应该足够长,难于猜测,并尽可能的随机:

    密码种子(cipher seed)用来加密/解密字符串。在 中改变缺省的 Security.cipherSeed 的值。新的值应当是一个随机大整数:

    1. /**
    2. * 一个随机数字字符串 (只含有数字) ,用于加密和解密字符串。
    3. */

    偶尔新用户会遇到 mod_rewrite 的问题。例如,如果 CakePHP 的欢迎页面看起来有点儿奇怪(不显示图片,或者没有 CSS 样式),这也许是因为你系统中的 mod_rewrite 没起作用。请参阅下面与你的 web 服务器相应的关于 URL 重写的章节,来解决这些问题:

    接下来进入 ,开始建立你的第一个CakePHP 应用程序.