CakePHP: 配置

cakephp基本配置 [url]http://fisherxie.iteye.com/blog/725019[/url]
CakePHP 2.x十分钟博客教程 [url]http://www.ruiwant.com/cakephp2-blog-tutorials-part-1-installation-and-configuration.html[/url]

参考:
CakePHP 2.x十分钟博客教程(一):安装与配置 [url]http://www.ruiwant.com/cakephp2-blog-tutorials-part-1-installation-and-configuration.html[/url]
php框架学习日志二(cakephp在xp上安装) [url]http://blog.csdn.net/wjazz/article/details/2618750[/url]

CakePHP配置
[b]1.下载并解压到目录。[/b]

[b]2.httpd.conf配置文件[/b]
A:LoadModule rewrite_module modules/mod_rewrite.so把前面的#去掉。
B:检查AllowOverride是否为all如果不是,请改为all。然后保存重启APACHE。
	<Directory />
Options FollowSymLinks
AllowOverride all
Order deny,allow
Deny from all
Satisfy all
</Directory>


[b]3.注意.htaccess也要复制过去。[/b]

[b]4.两个注意[/b]
Notice (1024): Please change the value of 'Security.salt' in APP/Config/core.php to a salt value specific to your application.
[CORE\Cake\Utility\Debugger.php, line 849]
Notice (1024): Please change the value of 'Security.cipherSeed' in APP/Config/core.php to a numeric (digits only) seed value specific to your application.
[CORE\Cake\Utility\Debugger.php, line 853]
找到D:\work_documents\htdocs\app\Config\core.php文件,查看里面的Security.salt,Security.cipherSeed,修改这两个值,就可以了。

[b]5.进入http://localhost[/b],就可以看见欢迎界面了。

[color=red][b]6.配置首页:[/b][/color]
CakePHP默认设置的一个route来为PagesController::display('home')配置路由。Home是Cake的默认首页视图,你可以在这个位置找到并修改它/app/views/pages/home.thtml。
CakePHP的默认响应请求(访问www.example.com)是使用PagesController控制器,然后输出home.ctp视图文件,这些文件都包含在CakePHP框架的核心库中。现在我们通过路由更改默认响应到PostsController控制器的index()方法。首先找到路由配置文件,/app/Config/routes.php。找到如下代码,并替换新的代码。
//注释掉:
//Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));
//添加代码:
$Route->connect ('/', array('controller'=>'Pages', 'action'=>'display', 'home'));


[color=red][b]7.配置模板文件格式:[/b][/color]
cakephp的默认views编辑页面为ctp格式的,这在DM下编辑不方便,所以我都会把默认修改为html或者htm格式,方便前台美工修改。
D:\work_documents\htdocs\lib\Cake\Controller\Controller.php
#public $ext = '.ctp';
public $ext = '.php';


[color=red][b]8.修改默认的页面头部:[/b][/color],页面头部信息可以通过默认的布局文件 APP/views/layouts/default.ctp控制,D:\work_documents\htdocs\app\View\Layouts\default.ctp,直接修改这个文件。

<!DOCTYPE html>
<html>
<head>
<?php echo $this->Html->charset(); ?>
<title>
潘永郑的个人网站
</title>
<?php
/*echo $this->Html->meta('icon');
echo $this->Html->css('cake.generic');
echo $this->fetch('meta');
echo $this->fetch('css');
echo $this->fetch('script');*/
?>
</head>
<body>
<?php echo $this->fetch('content'); ?>
</body>
</html>


[color=red][b]9.过滤一些路由[/b][/color],由于默认的cakePHP会占用了所有路由,所以需要设定一些url,让它不通过路由。
D:\work_documents\htdocs\.htaccess, [color=red]注意,是根目录下面,不是app文件夹下面的。[/color]
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/apps/(.*)
RewriteCond %{REQUEST_URI} !^/demos/(.*)
#RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>

[b][color=darkblue]RewriteCond %{REQUEST_URI} !^/apps/(.*)
RewriteCond %{REQUEST_URI} !^/demos/(.*)[/color][/b]

[color=red][b]10.自定义layout[/b][/color]
在 cakephp 中 layout 默认指向 /app/views/layouts/default.ctp
如果要自定义 layout,需要在 controller 中定义:
var $layout = 'mylayout';
layout 则指向了 /app/views/layouts/mylayout.ctp
如果需要设置一个空的layout,同样也得在controller中或者是controller的函数中定义:
var $layout = 'empty';
然后修改/app/views/layout/empty.ctp;

[b]10. 创建不使用数据库表的 model 或者改变 model 对应的表名[/b]
我需要创建一个不使用任何表的model。例如,我想通过 $validate 数组方便底验证输入数据,保持model逻辑的正确性。但创建 model 时对应的表不存在,CakePHP 就会报错。通过在 model 中加入以下代码可以解决这个问题:
var $useTable = false;
也可以通过这种方法改变model对应的表名。
var $useTable = 'some_table';

[b]4. 快速创建后台管理[/b]
如果你需要创建后台管理程序,并且希望所有管理action都位于某个特定文件夹下,打开 config/core.php 并将下面这一行的注释去掉:
define('CAKE_ADMIN', 'admin');
这样所有以"admin_"开头的action都可以通过 /admin/yourcontroller/youraction 来访问。例如,如果在 posts controller 中创建了名为 "admin_add" 的 action,那么可以通过 localhost/admin/posts/add 访问这个action。这样就可以方便地为 admin 目录设置密码以避免他人随意访问。

[b]5. 自定义404页面[/b]
如果你需要自定义404页面,只需创建 /app/views/errors/error404.thtml。

[color=red][b]6. 让controller使用其他model[/b][/color]
如果你的controller需要调用来自不同model的数据,只要在controller开头使用如下代码:
class yourController extends AppController {
var $uses = array('Post','User');
public function site()
{
$this->set("site", $this->Post->find("all"));
}
}

这样controller就能访问Post和User model了。
[color=red]注意:array里面的元素不能是复数,应该是单数,使用为$this->Post[/color]

[color=red][b]配置数据库[/b][/color]
复制database.php.default成database.php,然后修改
public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'user',
'password' => 'password',
'database' => 'database_name',
'prefix' => '',
//'encoding' => 'utf8',
);



一个很哑巴的错误:我做完以上配置,并运行成功。
按照:[url]http://www.ruiwant.com/cakephp2-blog-tutorials-part-2-controller-model-view-introduction.html[/url],做了个例子,但是,我把我自己的首页去替换掉了webroot/index.php文件,这个时候会出现错误,后来还原了cakephp自己的index.php,才能正常运行。就是说[color=red][b]CakePHP自己webroot/index.php是不能删除的[/b][/color]。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值