CakePHP系列(二)----博客(Blog)案例(一)

一、Blog案例


本教程将引导您完成一个简单的博客应用程序的创建。 我们将安装CakePHP,创建一个数据库,并创建足够的应用程序逻辑来列出,添加,编辑和删除博客文章。

以下是您需要的:

  1. 正在运行的Web服务器。 我们将假设您使用Apache,但使用其他服务器的说明应该非常相似。 我们可能需要对服务器配置发挥一点,但是大多数人可以在没有任何配置的情况下启动和运行CakePHP。 确保您有PHP 5.6.0或更高版本,并且PHP中启用了mbstringintl扩展。
  2. 数据库服务器。 我们将在本教程中使用MySQL服务器。 您将需要足够了解SQL以创建数据库:CakePHP将从那里采取。绳。 因为我们使用MySQL,还要确保在PHP中启用了pdo_mysql 。
  3. 基本PHP知识。

让我们开始吧!

二、获取CakePHP

安装CakePHP的最简单的方法是使用Composer。 Composer是从终端或命令行提示符安装CakePHP的简单方法。 首先,您需要下载并安装Composer,如果您还没有这样做的话。 如果你安装了curl,它就像运行下面一样简单:

curl -s https://getcomposer.org/installer | php

或者,您可以从Composer网站下载composer.phar 。然后只需在安装目录中在终端中键入以下行,即可在bookmarker目录中安装CakePHP应用程序框架:

php composer.phar create-project --prefer-dist cakephp/app blog

如果您已经安装了composer ,请改为输入:

composer self-update && composer create-project --prefer-dist cakephp/app blog

使用Composer的优点是它将自动完成一些重要的设置任务,如设置正确的文件权限和为您创建config / app.php文件。

还有其他方法来安装CakePHP。 如果您不能或不想使用Composer,请查看安装部分。

无论下载和安装CakePHP的方式如何,一旦设置完成,您的目录设置应如下所示:

/cake_install
    /bin
    /config
    /logs
    /plugins
    /src
    /tests
    /tmp
    /vendor
    /webroot
    .editorconfig
    .gitignore
    .htaccess
    .travis.yml
    composer.json
    index.php
    phpunit.xml.dist
    README.md

现在可能是一个了解CakePHP的目录结构如何工作的好时机:查看CakePHP文件夹结构部分。

二、tmp和日志的目录权限

tmplogs目录需要具有适当的权限,才能由Web服务器写入。 如果您使用Composer进行安装,则应该已经为您完成,并通过“<folder>”上的权限设置确认。 如果你得到一个错误消息或想手动做,最好的方法是找出你的web服务器运行什么用户(<?= `whoami`; ?> ),并将这两个目录的所有权更改为该用户。 你运行的最终命令(在* nix中)可能看起来像这样:

chown -R www-data tmp
chown -R www-data logs

如果由于某些原因,CakePHP无法写入这些目录,则会在未处于生产模式时通过警告通知您。

虽然不推荐,但如果您无法将权限设置为与Web服务器相同,则可以通过运行以下命令简单地设置文件夹的写入权限:

chmod 777 -R tmp
chmod 777 -R logs

三、创建博客数据库

接下来,让我们为我们的博客设置基础MySQL数据库。 如果您还没有这样做,请创建一个空数据库供您在本教程中使用,并使用您选择的名称,例如cake_blog 。 现在,我们将创建一个表来存储我们的文章。 我们还会投入几篇文章用于测试目的。 在数据库中执行以下SQL语句:

/* First, create our articles table: */
CREATE TABLE articles (
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(50),
    body TEXT,
    created DATETIME DEFAULT NULL,
    modified DATETIME DEFAULT NULL
);

/* Then insert some articles for testing: */
INSERT INTO articles (title,body,created)
    VALUES ('The title', 'This is the article body.', NOW());
INSERT INTO articles (title,body,created)
    VALUES ('A title once again', 'And the article body follows.', NOW());
INSERT INTO articles (title,body,created)
    VALUES ('Title strikes back', 'This is really exciting! Not.', NOW());

表和列名称的选择不是任意的。 如果你遵循CakePHP的数据库命名约定和CakePHP的类命名约定(在CakePHP约定中概述),你将能够利用大量的免费功能,避免配置。 CakePHP是足够灵活的,以适应甚至不一致的遗留数据库模式,但遵守约定将节省您的时间。

查看CakePHP约定了解更多信息,但足以说,命名我们的表'文章'会自动钩到它的文章模型,并有称为“修改”和“创建”字段将自动由CakePHP管理。

四、数据库配置

接下来,让我们告诉CakePHP我们的数据库在哪里,以及如何连接到它。 对许多人来说,这将是第一次和最后一次你需要配置任何东西。

配置应该非常简单:只需将config / app.php文件中的Datasources.default数组中的值替换为适用于您的设置的值。示例完成的配置数组可能如下所示:

return [
    // More configuration above.
    'Datasources' => [
        'default' => [
            'className' => 'Cake\Database\Connection',
            'driver' => 'Cake\Database\Driver\Mysql',
            'persistent' => false,
            'host' => 'localhost',
            'username' => 'cake_blog',
            'password' => 'AngelF00dC4k3~',
            'database' => 'cake_blog',
            'encoding' => 'utf8',
            'timezone' => 'UTC'
        ],
    ],
    // More configuration below.
];

保存config / app.php文件后,您应该可以打开浏览器并查看CakePHP欢迎页面。 它还应该告诉您找到了您的数据库连接文件,并且CakePHP可以成功连接到数据库。

CakePHP的默认配置文件的副本可以在config / app.default.php中找到。

五、可选配置


还有一些其他项可以配置。 大多数开发人员完成这些洗衣名单项目,但它们不是本教程所必需的。 一个是定义用于安全散列的自定义字符串(或“salt”)。

安全盐用于生成散列。 如果你使用Composer,这也是在安装过程中为你照顾。 否则,您需要通过编辑config / app.php来更改默认盐值。 没有什么新的价值是什么,只要它不可猜测:

'Security' => [
    'salt' => 'something long and containing lots of different values.',
],

六、关于mod_rewrite的注释

有时新用户会遇到mod_rewrite问题。 例如,如果CakePHP欢迎页面看起来有点滑稽(没有图像或CSS样式)。 这可能意味着mod_rewrite在您的系统上不工作。 请参阅网址重写部分,以帮助解决您遇到的任何问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值