Upload
-
View
352
Download
1
Embed Size (px)
Citation preview
PHP講座(8)!ソーシャルブックマークを作ろう(1)
これより4回に渡ってソーシャルブックマークアプリケーションを作っていきます。 第一回ではテーブルの作成とデータの登録を行います。
IDEとは?
10.4.18 (C) 株式会社破滅派
2
Integrated Development Enviorment
↓ 統合開発環境
・コードヒント ・シンタックスカラーリング ・検索、置換 ・FTPアップロード ・バージョン管理システムとの連携 …その他もろもろ
Eclipse + PDT Aptana(オススメ) Dreamweaver Emacs, Vim
他にも色々ありますが、ツールに溺れないように!
MySQLの技術復習
10.4.18 (C) 株式会社破滅派
3
1. 作成する( Create)
2. 検索・取得する(Retrieve)
3. 更新する(Update)
4. 削除する(Delete)
全部あわせてCRUDとか言ったりします。
「ぺちぱブックマーク」の要件
10.4.18 (C) 株式会社破滅派
4
1. 登録したユーザーのみ利用できる(=ユーザーの新規登録がある) 2. ユーザーは退会できる。 3. ブックマークしたURLは集計される 4. ブックマークしたURLにはタグをつけることができる 5. タグは新規登録ができる。 6. タグがすでに登録されている場合は同じものを使う。
これらの条件から必要なテーブルを考えていきます。重要な作業です。
「ぺちぱブックマーク」のテーブル構造
10.4.18 (C) 株式会社破滅派
5
ID mail password created
1 [email protected] mememna 1990-‐05-‐05 14:00:00
2 [email protected] saTejkh 1975-‐08-‐22 22:02:00
3 [email protected] auifsheoifajos 1960-‐12-‐11 00:00:00
ID user_id url created
1 12 http://example.jp 1990-‐05-‐05 14:00:00
2 14 http://example.com 1975-‐08-‐22 22:02:00
3 16 http://example.jp 1960-‐12-‐11 00:00:00
ID user_id tag_id bookmark_id
1 1 2 1
2 4 5 1
3 1 6 4
ID user_id name created
1 1 これはすごい 1990-‐05-‐05 14:00:00
2 4 php 1975-‐08-‐22 22:02:00
3 1 pear 1960-‐12-‐11 00:00:00
ユーザーテーブル pb_users
ブックマークテーブル pb_bookmarks
タグテーブル pb_tags
データ紐付け用テーブル pb_relationships
※テーブル名には接頭辞をつけましょう。 普通はプロジェクト名+アンダースコアです。
1.ユーザー情報の管理
10.4.18 (C) 株式会社破滅派
6
ID mail password created 1 [email protected] mememna 1990-‐05-‐05 14:00:00 2 [email protected] saTejkh 1975-‐08-‐22 22:02:00 3 [email protected] auifsheoifajos 1960-‐12-‐11 00:00:00
主キーと呼ばれるその行を特定するフィールドは、一般的に以下の属性を持ちます。 PRIMARY KEY(主キー) AUTO_INCREMENT(自動増加)
パスワードを格納するとき パスワードをデータベースに格納するとき、通常はハッシュ(不可逆的暗号化)して格納します。 パスワードをそのまま入れてしまうと、データベースが流出したときにパスワードそのものが流出してしまいます。
1. 登録したユーザーのみ利用できる(=ユーザーの新規登録がある) 2. ユーザーは退会できる。
ユーザーのログイン名にはメールアドレスを使います。
2.ブックマーク情報の管理
10.4.18 (C) 株式会社破滅派
7
ID user_id url created 1 12 http://example.jp 1990-‐05-‐05 14:00:00 2 14 http://example.com 1975-‐08-‐22 22:02:00 3 16 http://example.jp 1960-‐12-‐11 00:00:00
主キーと呼ばれるその行を特定するフィールドは、一般的に以下の属性を持ちます。 PRIMARY KEY(主キー) AUTO_INCREMENT(自動増加)
1. ユーザーはブックマークを登録できる(暗黙の前提)
ユーザーのIDを登録しておくことで、後で検索に利用できます。
3.タグ情報の管理
10.4.18 (C) 株式会社破滅派
8
ID user_id name created 1 1 これはすごい 1990-‐05-‐05 14:00:00 2 4 php 1975-‐08-‐22 22:02:00 3 1 pear 1960-‐12-‐11 00:00:00
主キーと呼ばれるその行を特定するフィールドは、一般的に以下の属性を持ちます。 PRIMARY KEY(主キー) AUTO_INCREMENT(自動増加)
1. タグは新規登録ができる。 2. タグがすでに登録されている場合は同じものを使う。
ブックマークと同じ原理です。
4.タグとブックマークの紐付け
10.4.18 (C) 株式会社破滅派
9
ID user_id tag_id bookmark_id 1 1 2 1 2 4 5 1 3 1 6 4
主キーと呼ばれるその行を特定するフィールドは、一般的に以下の属性を持ちます。 PRIMARY KEY(主キー) AUTO_INCREMENT(自動増加)
1. ブックマークしたURLにはタグをつけることができる
この3つのフィールドを入れることで、「誰がどのブックマークになんというタグをつけたのか」がわかります。
関数による再利用
10.4.18 (C) 株式会社破滅派
10
ぺちぱブックマークのように複雑なサービスでは、似たような処理が何度も出てきます。
自分で関数を作って、同じ処理を書かないで済むようにします。
URLが正しい値かどうかチェックして、データベースに接続して… 似たような処理が多いな… これを一々コピペするのは面倒だから、一つのファイルにまとめておこう。
関数の文法
10.4.18 (C) 株式会社破滅派
11
function hoge($foo, $bar…){ //ここでなんか処理を行う return $fuga;
}
引数。なくてもいいし、なんこあってもいい。 関数名 関数宣言
戻り値(なくてもいい)
一度作った関数は何度でも呼び出すことができます。
定義済み関数
10.4.18 (C) 株式会社破滅派
12
PHPには定義済みの関数がたくさん(4000ぐらい)あります。 人間が考えることは大体同じなので、基本的なものはほとんど揃っています。
1. 文字列の数を数えたい 2. 配列を並べ替えたい 3. ファイルをコピーしたい 4. 画像を白黒にしたい 5. メールを送りたい
まずは「こういう関数はないかな?」 と探してみることから始めましょう。