Home >php教程 >php手册 >Cake:让PHP也跑在铁轨上

Cake:让PHP也跑在铁轨上

WBOY
WBOYOriginal
2016-06-21 09:11:251356browse

Cake是一个根据Ruby on Rails而架构的php 框架。和RoR一样,Cake也封装了对数据库的操作。目前Cake还不算一个成熟的框架,但是已经很值得关注了。

下边介绍下怎么在WAMP上安装Cake。

首先下载Cake Latest version: cake_0.2.9.zip


解压后,进入cakeconfig 将database.php.default改名为database.php,并对数据库的参数进行设置。如:

$DATABASE_CONFIG = array(
'devel' => array(
'host' => 'localhost',
'login' => 'user',
'password' => 'user',
'database' => 'cake'
)
);

然后Cake需要用到Apache的mod_rewrite,打开Apache的/config/httpd.conf,将

#LoadModule rewrite_module modules/mod_rewrite.so

前的#号去掉,

#AddModule mod_rewrite.c

前的#号去掉。

然后添加一个虚拟主机,比如


ServerAdmin Easy@gmail.com
DocumentRoot "F:/cake/"
ServerName cake.com
ErrorLog logs/cake.com.error_log
CustomLog logs/cake.my.com common


AllowOverride all
Order allow,deny
Allow from all

在 C:WINDOWSsystem32driversetchosts中加入一行本地host

127.0.0.1 cake.com

然后重启Apache和浏览器。

这时候Cake已经可以正常工作了。我们来创建一个应用:

在数据库中创建一个表

CREATE TABLE posts (    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,    title VARCHAR(50),    body TEXT,    created DATETIME DEFAULT NULL,    modified DATETIME DEFAULT NULL);INSERT INTO posts (title,body,created)     VALUES ('The title', 'This is the post body.', NOW());INSERT INTO posts (title,body,created)     VALUES ('A title once again', 'And the post body follows.', NOW());INSERT INTO posts (title,body,created)     VALUES ('Title strikes back', 'This is really exciting! Not.', NOW());
Cake是基于MVC模式的。创建一个应用时,我们先创建它的Model。
<pre class="brush:php;toolbar:false"><small>app/models/post.php</small><?PHPclass Post extends AppModel {}?>
然后创建Control
<pre class="brush:php;toolbar:false"><pre class="brush:php;toolbar:false"><small>app/controllers/posts_controller.php</small><?PHPclass PostsController extends AppController {}?>
在其中加入index方法:
<pre class="brush:php;toolbar:false">app/controllers/posts_controller.php (fragment)function index () {}
最后创建view
<pre class="brush:php;toolbar:false"><small>app/views/posts/index.thtml</small>
post->find_all() as $post): ?>
ID Title Created
=$post['id']?> =$this->link_for($post['title'], "/posts/view/{$post['id']}"?> =$post['created']?>
这样一个应用就完成了。
<pre class="brush:php;toolbar:false">输入http://cake.com/posts/index 即可访问到我们刚才创建的程序。
<pre class="brush:php;toolbar:false">IDTitleCreated1The title2005-05-23 09:30:342A title once again2005-05-23 09:30:353Title strikes back2005-05-23 09:30:35



Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn