作者:上村崇 フリーランスのIT系エンジニア
twitter:@uemera facebook:uemura

PHPのフレームワークCakePHPをゼロから学ぶ


CakePHPにチャレンジしはじめました。

そういう仕事がありそうな予感がするし、知っておくとあとあと有利な気がするので。

 

CakePHPはPHP用のフレームワークです。

フレームワークらしいフレームワークって、今まで触ったことなかったので、自分にとっては新しい領域です。

XOOPS Cubeのモジュール開発手法も、あれはあれでフレームワークって言うのかも知れないけど… あまりフレームワークの概念が良く分かってないもんで、厳密にはどういうものがフレームワークってものにカテゴライズされるのか良く知りません。

 

CakePHPはRuby on Railsの影響を強く受けているようです。去年行った関西オープンソースでRuby会議の人のセミナーを聞いて以来、Railsもいずれはちゃんと学習したいなーとは思っていますが…

 

ざっとマニュアルやら斜め読みした感じのCakePHPの特徴

 

フレームワークを使いこなすと、一般的なWebアプリケーションなら超速で作れるようになります。

いわゆる「お約束」的なコーディングをフレームワークが肩代わりしてくれるので、プログラマが書くコード量が少なくて済みます。

その代わり、どこからどこまでフレームワークが「お約束」を処理してくれるのかを正しく理解していないと使いこなせません。

小~中規模のサイトを量産するのにフレームワークという開発手法は適しているんだと思います。

 

 

CakePHPには、model、View、Controllerという概念があります。(略してMVC)

Webアプリケーションを「入力」、[処理」、「出力」という3つの部分に分けるとすると、

Controller=入力、Model=処理、View=出力 と考えれば良いみたい。

  • Model
        データベースとのI/Fとなる部分。validation(検証)もここに書く。
  • View
        ページのテンプレートとなる部分。HTMLを記述する。拡張子はthtml
  • Controller
        入力されたデータや命令を最初に処理するところ。indexやadd,deleteなどのアクションを書くところ。

 

規約というものがあり、これに沿った形でコーディングする必要があります。

一部を紹介します。

  • データベースのテーブル名をつけるときは英語の複数形にする必要があります。”users”、 “authors” 、 “articles” など。
  • プライマリキーのカラム名は”id”という名前にすること。
  • テーブルに、’created’(作成) や ‘modified’(修正)という列があると、フィールドにデータを自動的に時刻を書き込んでくれる。  

Model、View、Controllerに対してそれぞれファイルを用意する必要がありますが、一連の動作フローのセットは同じ名前を共通で使う必要があります。 たとえば、ブログの投稿をするアプリケーションを作る場合、例えばその名前をpostとすると、

  • Controller のファイル → controllers/posts_controller.php
  • Model のファイル → models/post.php
  • View のファイル → views/posts/index.ctp

という具合で、規約にそってファイル名をつけると、CakePHPはこれらのファイル群が同じセットであることを自動で認識してくれます。

 

CakePHPのディレクトリ構成はこんな感じです。ディレクトリ毎のそれぞれの役割は知っておく必要がありそうです。

 

image 

 

 

 

どうやって学ぶか

 

僕はまだまだ入口に立ったばかりでほんとに基本的なことしか分からないですけど、学習にはここが参考になりました。

 

CakePHPブログチュートリアル :: 開発例 :: マニュアル :: 1.2 Collection :: The Cookbook
http://book.cakephp.org/ja/view/219/Blog

 

これはCakaPHPのマニュアルの一部で、簡単なブログシステムをCakePHPで作ってみよう!というケーススタディみたいな章なんですが、

これが一番分かりやすいです。やっぱり手を動かして学ぶのが早いですね。

このケーススタディに沿って実際にWebアプリケーションを作ってみると、なんとなくお作法が分かると思います。

 

ネットで探したら初心者向けのマニュアルとか、いろいろありましたけど、概念から入るより、作って見て動かしたほうが理解しやすいのではないかと思います。専門的な用語もいっぱいあって、いきなりそんなのを覚える苦労から入るのはつまらないしね。

 

 

他に参考になったのは以下です。

 

Akiyanさんの記事が参考になりました。全部は読んでませんけど。

CakePHPで高速Webアプリ開発:第1回 CakePHPを使いたくなる5つの特徴|gihyo.jp … 技術評論社
http://gihyo.jp/dev/serial/01/cakephp/0001

 

CakePHP 1.2のマニュアル :: 1.2 Collection :: The Cookbook
http://book.cakephp.org/ja

 

CakePHP本家サイト。CakePHPはここからダウンロードしてください。

CakePHP: 高速開発 php フレームワーク。 Home
http://cakephp.jp/

関連記事


CentOS8にLaravel8をインストールする手順(動画あり)
さくらのVPS CentOS8にLaravel8をインストールします。 スタートアップスクリプトは”LAMP”で構築しています。 YouTubeで解説しています remiリポジトリインストール d …

CakePHPはじめました
ちょっとしたWebサービスを新しく作ろうとしているのですが、ゼロからつくりはじめるのは何かとめんどくさいし、今まで手を出していなかったツールを使ってみるのも勉強だと思って、CakePHPにチャレンジしています。   Ca …

オープンソースカンファレンス2010 京都に行ってきました
去年にひきつづき、7/10(土)にオープンソースカンファレンス(OSC)2010京都に行ってきました。 去年よりなんだか人が多い印象です。どのセミナーも、けっこういっぱい人が来ていました。 不況と勉強会の人気って相関があ …

AdobeのCreative Cloudを解約したのにしつこくポップアップが出てくるので始末した
AdobeのCreative Cloudを解約したののに、「お使いのアドビソフトウェアが正規品でないことをご存知でしたか?」 ていうポップアップが出るようになりました。ウザいので削除しました。環境はMacです。AdobeGCClientを削除しました。

Postfixメールサーバー:送信不可のユーザーを設定する
メールサーバーPostfixにて、送受信ができないユーザーを設定をする方法です。Linux、debian環境です。特定のメールアドレスを送受信不可にします。メールを許可しないLinuxユーザーを作るときに有効です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です