【初心者向け】PHPフレームワークのCakePHPとは?徹底解説

公開日: 2017.08.23
更新日: 2024.01.31
デフォルト画像

みなさんは、PHPの学習をしていませんか?

現在、短期間での効率的な開発を実現するために、多種多様なPHPフレームワークが公開されています。

今回、Ruby On Railsに影響されて開発が始まり、その後独自の発展をとげているCakePHP(ケイク・ピー・エイチ・ピー)
フレームワークの使い方をご紹介します。(バージョンは3系)
PHPという言語の面白さや、PHPフレームワークを使った開発手法に興味を持っていただければと思います。

必要な環境

CakePHPを利用するために必要な環境は次の通りです。

1.Linux、Windows、MacなどのいずれかのOS環境
2.Apache、LighttdなどのWebサーバー
3.MySQLなどのDB環境(MySQLが推奨です)
4.PHP 5.6.0 以降

なお、今回はWindows 上で、Apache、PHP、MySQLという構成で解説を行います。
バージョンは可能な組み合わせであれば、なんでも構いません。

※Apache,MySQL等個別でも構いませんが、最初の導入ということもありXAMPP(ザンプ)をお勧めします。

PHPフレームワークの利点

そもそもフレームワークを使う理由はなんでしょうか?もちろんPHPをそのまま使ってもプログラムは書けます。
PHPフレームワークを利用すると、どのような利点があるかご説明します。

同処理のコードを共通化し、繰り返し書くことを極力避けることが可能

PHPは非常に手軽な言語なので、各ページごとに、DBへの接続、データの読み込み、HTMLでの表示、という一連の
流れをべた書きしたプログラムを書くのは簡単です。
しかし、100ページ分、それぞれに同じことを繰り返し書いた場合、一箇所に変更が生じると100回書き直す必要があります。

オブジェクトを利用することでその作業量を軽減できますが、フレームワークを利用すると、さらに書くべきコード量を
劇的に減らすことができます。「コード量が少ない」ということは「変更時の修正箇所も少なくてすむ」ことになり、安定
したサイト運用につながります。

MVCアーキテクチャによる機能の分離

Webの世界では、MVC(モデル、ビュー、コントローラ)という設計モデルがよく使用されます。
実際にWEBページを作成するときも、MVCそれぞれに一つずつファイルが対応します。
ファイルが別々になっているので差し替えが比較的容易です。(見た目の変更ならビューファイルのみ変更など)
また、どこで何をやっているのかを区別したり、まとめたりしやすくなっています。

将来的な拡張、変更に柔軟に対応

CakePHPフレームワークを利用している場合、例えば、セッション管理をPHPのファイル形式からDB形式に変更したいのであれば
パラメータの設定を一つ変更するだけです。
また、既存のシステムをAjaxでより魅力あるインターフェイスに変更したい、というような場合でも、フレームワークを使って
書いてあれば修正すべき箇所を見つけやすくなります。これは、処理ごとにファイルがまとまっているからです。

チーム作業を効率的に分担可能

MVCアーキテクチャを採用しているということは、データ処理とデザイン部分が完全に分離しているため、プログラムを作成した
後で外観デザインを作ることもできますしデザイナーとプログラマーが並行して作業を進めることも容易です。

Ajaxやその他の技術を反映させやすい

フレームワークを利用した作業の場合、コミュニティが活発であれば、最新技術に関するコンポーネントやヘルパーなどの部品が
よく公開されます。自分のプロジェクトを大幅に変更しなくても、プラグインのような感覚で機能を追加できるかもしれません。

CakePHPフレームワークの利点

CakePHPフレームワークの特長には次のようなものがあります。

・PHP4/PHP5の両方に対応(PHPのバージョンによってコードを読み分けて対応)
・PEARライブラリを必要としない
・O/Rマッピング(テーブルアソシエーション)
・CRUD(データの作成、読み込み、更新、削除)画面の自動生成
・ビューのキャッシュ機能で表示の高速化
・バリデーション(入力値検証)機能
・生成されたSQL文のデバッグ機能
・活発なコミュニティの存在
・Ajax、htmlなどの各種ヘルパー
・セキュリティ、セッション、リクエストなどのコンポーネント
・ACLによる認証システム
・データのサニタイズ
・「vendor」ディレクトリで各種のPHPクラスを取り込める

CakePHPを利用していると、Ruby on Railsへ移行しやすくなります。
また、Zend Frameworkやその他の各種のクラスを「vendor」フォルダに取り込んで利用することもできるので、前回まで使用していた
他のフレームワークの修得コストが無駄になりません。
さっそく CakePHPフレームワークを利用した開発に挑戦してみましょう。

CakePHP のインストール

WEBサーバ、DB等他の環境はここでは説明は省略いたします。
始める前に、最新の PHP バージョンであることを確認してください。

php -v

Windows に Composer をインストール

CakePHP の公式のインストール方法として、依存性管理ツール Composer を使用します。

https://github.com/composer/windows-setup/releases/」からWindows インストーラーをダウンロードできます。
Composer の Windows インストーラーについての詳細は、 README をご覧ください。

CakePHP プロジェクトを作成

Composer をダウンロードおよびインストールしたら、my_app_name フォルダに CakePHP の新しいアプリケーションを作成してください。
下記の composer コマンドを実行して作成します。

 php composer.phar create-project –prefer-dist cakephp/app my_app_name

一度 Composer がアプリケーションの雛形とコアライブラリをダウンロードしたら、 インストールした CakePHP アプリケーションを
Composer から操作できるように しておきます。 必ず composer.json と composer.lock ファイルは残しておきましょう。

これでインストールした CakePHP アプリケーションにアクセスして、デフォルトの ホームページを見ることができるようになります。
このページの内容を変更するには src/Template/Pages/home.ctp を編集してください。

※composer によるインストールが推奨されますが、 Github にはプリインストール版もあります。
※アプリケーションの雛形と全てのベンダーパッケージが同梱されていますし、composer.phar も入っています。挑戦する機会があれば試してみてください。

パーミッション

CakePHP は、幾つかの操作のために tmp ディレクトリを使用します。
モデルの定義や、ビューのキャッシュ、セッション情報などです。

logs ディレクトリは、デフォルトの FileLog エンジンがログファイルを 出力するために使われます。

そのため、 CakePHP をインストールしたら logs, tmp ディレクトリと その全てのサブディレクトリに
WEBサーバの実行ユーザによる書き込み権限がある必要があります。(無いとログが書けなかったり、最悪動作しません)

composer によるインストール処理では、なるべく早く動かせるように tmp フォルダとそのサブフォルダに全ユーザが
書き込みできるようにしますが、このままではセキュリティ的に問題がありますので、これをWEBサーバの実行ユーザだけが
書き込みできるようにパーミッション設定を変更すれば、 より良いセキュリティ状態にすることができます。

Windowsフォルダ設定を変更する場合は、右クリックでプロパティから セキュリティタグを選択して
該当するWEBサーバ実行ユーザにのみ書き込み権限を残して他は削除してください。

開発サーバとして実行

開発用インストールは、CakePHP を最も速くインストールする方法です。
この例では、CakePHP のコンソールを使って PHP の組み込みウェブサーバーを起動して、 あなたのアプリケーションに
「http://host:port/」という形式でアクセスできるようにします。

app ディレクトリに移動し、下記のコマンドを実行しましょう。

bin\cake server

これで、「http://localhost:8765/」であなたのアプリケーションに アクセスできます。

もしあなたの環境で localhost や 8765番ポートが使用済みなら、CakePHP のコンソールから 下記のような引数を使って
特定のホスト名やポート番号でウェブサーバーを起動することができます。

bin\cake server -H 192.168.1.1 -p 5673

この場合は、 「http://192.168.1.1:5673/」 でアクセスできます。

これだけで、とりあえずCakePHP アプリケーションは動作し、開発を進めることが出来ます。
WEBサーバは標準設定のみで動きます。

※これはあくまで開発サーバであり、公開環境に使用するべきではありませんのでご注意ください。

公開サーバとして実行

公開用インストールは、この方法を使えば、全てのドメインで1つの CakePHP アプリケーションを使う事も可能です。
今回の例では、あなたがファイルシステムのどこに CakePHP をインストールしたとしても、 「http://www.example.com」といったようにアクセスできるようになるようになっています。
※Apache でこの方法を使う場合は、 DocumentRoot を変更する権限が必要になる場合があります。

あなたが指定したディレクトリ(ここでは 「/cake_install」とする)にアプリケーションをインストールしたら
あなたのファイルシステムには下記のような環境ができているでしょう。

/cake_install/
bin/
config/
logs/
plugins/
src/
tests/
tmp/
vendor/
webroot/ (このディレクトリーが DocumentRoot になります)
.gitignore
.htaccess
.travis.yml
composer.json
index.php
phpunit.xml.dist
README.md

Apache を利用している開発者は、当該ドメインの DocumentRoot ディレクティブに 下記のように指定します。

 DocumentRoot /cake_install/webroot

上記WEBサーバ設定が正しく設定されていれば、これで「http://www.example.com」から あなたの CakePHP アプリケーションにアクセスできるようになります。

さいごに

ブラウザから http://example.com/ あるいは http://localhost:8765/ などでアクセスできるようになってでしょうか。
これで CakePHP のデフォルトのホーム画面と、データベースへの接続状態を表すメッセージなどが表示されます。
まだまだCakePHPにはできることもたくさんありますが、まずはさまざまなページを作ってフレームワークに慣れてみてください。

関連記事

資料請求

  • 短期集中で最速エンジニア転職を実現-転職成功者インタビュー一覧

    DMM WEBCAMPでは転職成功率98%を実現しています。本資料では、元警察官や元ラーメン屋など様々なバックグラウンドを持つ卒業生の声をお届けします。

    資料をダウンロードする
  • IT技術がもたらす3つの変化と身につけるべきスキル

    IT技術の発展により、今後10~20年程度で47%の仕事がなくなると言われています。どのような変化が訪れ、私達はどのようなスキルを身につけるべきかを解説します。

    資料をダウンロードする
  • 未経験がフリーランスエンジニアになる方法-年収アップで自由な働き方を手に入れる

    働き方改革やリモートワークの影響でフリーランスという働き方の人気は高まりつつあります。フリーランスエンジニアとして活躍するために必要な情報をお届けします。

    資料をダウンロードする

© 2024 WEBCAMP MEDIA Powered by AFFINGER5