CakePHP
Easy PHP Framework

Darkhero

Study-Area Taipei

PHP Need A framework

PHP一直以來都是每個人自己寫自己的 Framework .....

  • phpBB2 PK smf PK Discuz
  • Drupal Vs Joomla Vs xoops
  • osCommerce 對決 ZenCart

基本上除了都是用 PHP 以外

  • 資料庫命名結構不一樣
  • 程式檔案目錄結構不一樣
  • 程式流程也不一樣

PHP Need A framework

 更重要的是:.......

PHP Need A framework

更重要的是:.....

同一個公司的同事寫的

竟然也不一樣

Orz 

 

PHP Vs Web2.0

PHP程式設計師需要一個易學易用的Framework

PHP程式設計師需要能快速將概念化為實做

Web 2.0 的時代,不能慢吞吞的慢慢刻程式,建立架構

等你完成架構,開始寫程式,人家早就玩完了!!

CakePHP

 
特色
簡單好用的CakePHP,提供一個簡單的架構
免去了繁複的設定與學習
只要了解基本的資料庫欄位與程式命名規則
就能快速開發 

CakePHP

 
MVC
Model, View, Controller Architecture

CakePHP

 
View Helpers
AJAX
Javascript
HTML

CakePHP

 
Bake
Application and CRUD
code generation

CakePHP

 
Security
Session
Request Handling Components

CakePHP

 
Flexible
View
Caching

CakePHP

ActiveRecord

No More SQL in Your Code! 

CakePHP建構四部曲

 
首部曲-資料庫
首先先建立資料庫結構 

CakePHP建構四部曲

 
二部曲-Model
 post.php
 <?php
class Post extends AppModel
{
    var $name = 'Post';
    var $validate = array(
        'title' => VALID_NOT_EMPTY,
        'content' => VALID_NOT_EMPTY,
    );
    var $hasMany = array('Comment');
    var $hasAndBelongsToMany = array('Tag');
?> 

CakePHP建構四部曲

 
二部曲-Model
comment.php
<?php
class Comment extends AppModel
{
        var $name = 'Comment';
        var $validate = array(
                'name' => VALID_NOT_EMPTY,
                'email' => VALID_EMAIL,
                'content' => VALID_NOT_EMPTY,
                'post_id' => VALID_NOT_EMPTY,
        );

        var $belongsTo = array('Post');
}
?>

CakePHP建構四部曲

 
二部曲-Model
tag.php
<?php
class Tag extends AppModel
{
        var $name = 'Tag';
        var $validate = array(
                'name' => VALID_NOT_EMPTY,
        );

        var $hasAndBelongsToMany = array('Post');

}
?>

CakePHP建構四部曲

 
三部曲-Controller
posts.php
 <?php
class PostsController extends AppController
{
        //var $scaffold;
        var $name = 'Posts';
        var $helpers = array('Html', 'Form' );

        function index() {
                $this->Post->recursive = 0;
                $this->set('posts', $this->Post->findAll());
        }
        function view($id) {
                $this->set('post', $this->Post->read(null, $id));
        }
?>

CakePHP建構四部曲

 
四部曲-View
 index.thtml
 <?php foreach ($posts as $post): ?>
<tr>
        <td><?php echo $post['Post']['id'] ?></td>
        <td><?php echo $post['Post']['title'] ?></td>
        <td><?php echo $post['Post']['content'] ?></td>
        <td><?php echo $post['Post']['created'] ?></td>
        <td>
                <?php echo $html->link('View','/posts/view/' . $post['Post']['id'])?>
                <?php echo $html->link('Edit','/posts/edit/' . $post['Post']['id'])?>
                <?php echo $html->link('Delete','/posts/delete/' . $post['Post']['id'], null, 'Are you sure you want to delete: id ' . $post['Post']['id'])?>
        </td>
</tr>
<?php endforeach; ?>

CakePHP建構四部曲

 
打完收工

CakePHP

資料庫的關聯,一般都是寫了一堆的SQL語法
但是CakePHP的Model則簡化了所有的事情

 

CakePHP

  • CakePHP 官方網站
    • http://cakephp.org/
  • 小弟的個人網站
    • http://blog.v-dark.net/

More PHP Framework

 
還有很多很棒的 Framework 推薦給您!
Symfony
Zend Framework 

當然,你不能忘了....

 
一定要去看看,並了解,目前網路上最紅的 WEB Framework
......... 

Ruby on Rails

 
也就是激勵 CakePHP 的

Ruby on Rails