atomicbox

Macでウェブ制作するための開発関連メモを残していきます。(html/JavaScript/jQuery など)

【CakePHP】初心者向けの基本ルール

CakePHPってなんか便利らしいぞ…という無知のところからはじまり手探りで使いはじめて2年弱。
未だに「なんとなくこうやったらこうなるようだ」というレベルですが、備忘も兼ねて使い方のポイントをまとめてみたいと思います。
インストールについては【MAMP】cakePHPのインストール方法をご覧ください。

前提

この記事はCakePHP2系の内容です。

CakePHPとは

PHPベースのWEBアプリケーションフレームワーク。MITライセンスのオープンソースのため、フリーで利用できます。
MVCモデルになっていて、小規模アプリケーションの高速開発に向いているため、初心者にも扱いやすい…という風によく紹介されています。
公式サイトでも「設定より規約」という表現をしていますが、CakePHPは作り方のルールをたくさん決めているのでそれに従うことで「簡単」・「高速」を実現しているのかなぁという印象です。

設置が簡単だし、規約に従った作り方をすればデータベース周りのこともかなり自動でやってくれるので、CakePHPの扱い方さえ覚えればPHPやDBの知識がなくても簡単なアプリケーションが作れてしまいます。

使っていてほんとに思いましたが、初心者が少々CakePHPの使い方を覚えてもPHPやMYSQLなどの知識はあまり深まりません。良いフレームワークの証拠ではありますが、純粋に言語の勉強をしたい場合はおすすめしません。深まっていくのはCakePHPの知識だけです(・v・;)

利用できるデータベース

以下のDBは、マッピング機能に対応するので簡単に扱えます。

  • MySQL
  • PostgreSQL
  • SQLite
  • Microsoft SQL Server

CakePHPのアプリケーション構造

CakePHPの基本構造はMVCモデルを採用していて、以下の三つの要素が組み合わさってひとつの機能がつくられます。

要素 概要 対応フォルダ
Model
モデル
データを扱う部分。 cake/app/Model
View
ビュー
見た目(ユーザーインターフェース)を扱う部分。 cake/app/View
Controller
コントローラー
ModelとViewを制御する部分。 cake/app/Controller

例えば、アプリケーションに会員(User)に関する機能とページを作る場合は対応フォルダに以下のようなファイルを追加します。

要素 追加ソース
Model User.php
View Users/login.ctp
Users/add.ctp
Controller UsersController.php
データベース 「users」テーブル作成

感のいい方はすでにお気づきかもしれませんが、「ファイル名」や「テーブル名」にはCakePHPならではのルールが垣間見えています。「User」だったり「Users」だったり「users」だったりするのは筆者のキマグレではなくて、そうしなければいけないからなのです。

CakePHPの基本の規約

冒頭でも少し触れましたがCakePHPでは「規約」がとても大切です。
その規約を調べるのが難しかったりもしますが、そういうものが根幹にあると心にとどめておくと調べるのが楽になったりすることもありますよね。

これは説明というよりきちんと公式ドキュメントを読む方がいいと思いますのでリンクをはっておきます。

CakePHPの規約(公式)

細かいことは色々ありますが、基本的なポイントだけまとめておきます。

要素 追加ソース
Controller クラス名:複数形キャメル記法 + 「Controller」
ファイル名は「クラス名.php」
Model クラス名:単数形でキャメル記法
データベース テーブル名:複数形アンダースコア記法(小文字)
フィールド名:アンダースコア記法(小文字)
主キー:各テーブルは「id」フィールド必須。
特にこだわりがなければ「INT(10) NOT NULL AUTO_INCREMENT」で作る。
hasMany, blongsTo, hasOne外部キー:モデル名(小文字) + 「_id」
hasAndBelongsToMany外部キー:joinテーブル1名 +「_」+ joinテーブル2名(アルファベット順)
View ディレクトリ名:Controller名(「Controller」なし)
ファイル名:関数名.ctp(アンダースコア記法)

今回はとりあえずここまで…

2 Comments

  1. 見習いWebプログラマー

    2014/09/08 at 20:14

    初めてコメントさせていただきます。
    現在私はXAMPP環境にてCakephp2.4.10を勉強中です。
    これからの勉強の参考にさせてもらいます。更新頑張ってください!

    • am.

      2014/09/10 at 17:47

      ご訪問とコメント、どうもありがとうございます。
      CakePHPの勉強、すばらしいですね。
      私も同じく勉強中なので未熟な内容にはなりますが、少しでもお役に立てば幸いです!
      お互いがんばりましょう(^-^)

コメントを残す

Your email address will not be published.

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

© 2017 atomicbox

Theme by Anders NorenUp ↑