CakePHPでSNSっぽいものを作ろうとして挫折するまでのコーディング日記(#006)

SPONSORED LINK

Pocket

前回までのあらすじ。

» CakePHP修行! アーカイブ | i d e a * i d e a

さて今日もCakePHPのお勉強。

■ 昨日のは練習ということでオールリセット

青い人に突っ込みをいれてもらったので前回までの作業は練習として全削除。最初からいろいろ設定しなおしました。

» 「CakePHPでSNSっぽいものをつくって挫折するまでのコーディング日記」へツッコミをいれていきます : akiyan.com

作業したことは以下のとおり。

  • ダウンロード、解凍
  • 前回と同様にCakePHPをダウンロード、解凍しました。

  • フォルダ構成の変更
  • なんとなくフォルダ構成を変更しました。/home/webadmin/codexcode.com以下に全部いれて、/app/webrootをVirtualHostのDocumentRootに設定しました。

    変更後のレイアウトはこんな感じ。

    /home/webadmin/
        /app
            /webroot ← DocumentRootに設定。
        /cake
        /vendors
        .htaccess
        index.php
        VERSION.txt
    
  • DB設定(/app/config/database.php)
  • あらためてDB設定。前回と同じ。

  • Permission設定。/app/tmpを777に。
  • ここは青い人もよく忘れるというポイントらしい。全部を777にするのはさすがに横暴だろうと思っていたらやっぱりそうでした。というわけで/app/tmpのみを777に。

■ まずはDB設定

次にSNSっぽいアプリを考えたときの仕様を考えてTable Layoutを作ってみます。そのあとScaffoldをやってみたい(そのあと元に戻すと思うけど)。

では必要そうなテーブルを列挙してみます。とりあえず最小限のもので。

  • Users (ユーザー)
  • まずはUsers。最小限な感じです。写真のアップ、ログイン時間とかはあとで考えよう。パスワードもとりあえず暗号化せずにいっときます。

    DROP TABLE IF EXISTS users;
    CREATE TABLE users (
        id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
        name VARCHAR(50),
        email VARCHAR(255),
        pwd VARCHAR(255),
        profile TEXT,
        created DATETIME DEFAULT NULL,
        modified DATETIME DEFAULT NULL
    );
    INSERT INTO users (name,email,pwd) values ('taguchi','taguchi@foo.com','taguchipwd');
    INSERT INTO users (name,email,pwd) values ('akiyan','akiyan@foo.com','akiyanpwd');
    
  • Posts (← 日記。Diariesより語感がいいのでこちらに)
  • ユーザーが書く日記。日記ごとにオーナーがいる感じで。

    DROP TABLE IF EXISTS posts;
    CREATE TABLE posts (
        id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
        user_id INT UNSIGNED,
        title TEXT,
        body TEXT,
        created DATETIME DEFAULT NULL,
        modified DATETIME DEFAULT NULL
    );
    
  • Friends (友達関係のJoinテーブル)
  • ここは誰が誰の友達かを表すテーブル。ちょっとズルをして青い人に聞きながらつくってみました。

    DROP TABLE IF EXISTS friends;
    CREATE TABLE friends (
        id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
        user_id INT UNSIGNED,
        friend_user_id INT UNSIGNED,
        status INT UNSIGNED,
        created DATETIME DEFAULT NULL,
        modified DATETIME DEFAULT NULL
    );
    

まずはこれだけ作ってみました。

ちなみにこうして作ったSQL文はどこかに保存しておいてよいものだろうか?なんとなく/app/config/sqlに入れてもよいような・・・他に入れるべき適切な場所があれば教えてくれぃ → 青い人。

■ 他にやったこと

なんとなく本家サイトからチートシートをダウンロード&印刷。移動中に見て勉強することにします。あとPHPみたいにPDFで全レファレンスがDLできるとかないのだろうか?

■ 次回の予定

Scaffoldを試してみていろいろ画面を見たい。で、そのあとまたリセットして、画面のレイアウトを考えていきたいっす。

・・・今日は以上。深夜にもうちょっとやるかも。あと明日、明後日はちょっと忙しいので次の更新は日曜日か月曜日あたりです。

ツイッターもやっています!

SPONSORED LINK

  1. ここにPDF版のリファレンスありますよー
    http://d.hatena.ne.jp/hetima/20061211/1165845362

    • Kayak
    • June 21st, 2007

    こんにちはー。

    PDFマニュアルはここの(↓)を使わせてもらってます。
    http://d.hatena.ne.jp/hetima/20061211/1165845362

    オリジナルPDF(英語)の公開場所がわからないので、 Google で
    CakePHP Manual filetype:pdf
    と探すと cakeforge.org にあるみたいですね。

  2. cakePHPによるSNS開発を実況中継

    PHPプログラマーの間でのここ1~2年の話題と言えば、やはりフレームワークです。 僕もEthnaとMovaviをほんの少しかじってみましたが、 よっぽど…

  3. Re: CakePHP日記 #006 ディレクトリ構成とDB設計

    こんにちは。青い人です。CakePHPでSNSっぽいものを作ろうとして挫折するまでのコーディング日記 | i d e a * i d e aが更新されまし…

  1. April 4th, 2009
  2. May 4th, 2010