• WebCamp_インタビュー
    “未経験”でもたった1ヶ月で営業からエンジニアとして転職!『WebCamp』受講者インタビュー
    2017.10.04
  • WebCamp_インタビュー
    【卒業生インタビュー】台湾で月間100万UUの訪日旅行メディアを手掛けるCEOが、プログラミングを学んで得たものとは?
    2018.01.15
  • WebCampPro_インタビュー
    未経験から上京し、エンジニアとしてチームラボグループに転職!【WebCampPro卒業生インタビュー】
    2018.03.10
  • WebCampPro_インタビュー
    未経験でも寿司職人からWebデザイナーになった!ホスピタリティでスクールを支える宮脇トレーナー
    2017.05.26
  • WebCamp_インタビュー
    時間や場所にとらわれず自由に働くために必要なスキルとは?【WebCamp卒業生インタビュー】
    2018.01.26
  • WebCampPro_インタビュー
    未経験31歳からエンジニア転職を実現【実際に聞いてみた】
    2017.04.01
  • WebCampPro_インタビュー
    自分で稼ぐ力をつけるため、新卒5年目の営業マンがエンジニアに転職!【WebCampPro転職者インタビュー】
    2018.02.02
  • WebCamp_インタビュー
    【WebCamp受講生インタビュー】起業準備中にCEOが気がついたプログラミングスキルの重要性とは?
    2017.12.25
  • WebCamp_インタビュー
    【WebCamp卒業生インタビュー】1ヶ月でRubyをゼロから学び、Webエンジニアとして転職!
    2018.01.15
  • WebCamp_インタビュー
    「1カ月頑張ればこの先が見えてくる」地元メディアを立ち上げたママさん
    2017.07.20
  • WebCamp_インタビュー
    「自信の持てるスキルを得たい!」内定辞退した女子大生がプログラミングを学習したワケ。
    2018.04.28

◆当サイトで人気のプログラミング教室のおすすめランキングはこちら!
プログラミングは独学では非効率で、時間を無駄にするリスクがあります。効率的なカリキュラムで学べるスクールを受講しましょう。

Web Camp【マンツーマンサポート】1ヶ月短期集中でプログラミングを学ぶスクール
1ヶ月通い放題・メンター常駐の教室環境でWebサービス等作りたい方
TechAcademyオンラインで開講しているプログラミングスクール
オンラインでどこでも学べる!/教室に行くのが忙しい人でも安心!
Tech Camp教養としてのITスキルを学べるスクール
Webデザイン/AI(人工知能)/IOS/Androidアプリ制作/VRを学びたい方!
WebCampPro転職保証付き!エンジニアとして転職したい人におすすめ!
未経験からプロのエンジニアを3ヶ月で目指すプログラミングスクールです。
9月生募集中!当社人気の転職保証コース
プログラミング学習から転職成功まで導く、当社人気のWebCamp Proコース。
8月受入枠は満員となっております。9月枠に向け、お早めの申込みをオススメします。
プログラミング未経験でもエンジニア転職を絶対成功させたい
スキルを身に着けて人生を自ら切り開きたい
上記にあてはまる方は、ぜひご検討ください!

みなさんは、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にはできることもたくさんありますが、まずはさまざまなページを作ってフレームワークに慣れてみてください。

WebCamp・Webスクについて

WebCampは1ヶ月でプログラミング・Webデザインスキルを学ぶ通い放題のプログラミングスクールです。Webスクは半年間で未経験から即戦力エンジニアを育成する転職保証付きのプログラミングスクールです。

2つのサービスを運営するインフラトップでは、「学びと仕事を通して人生を最高の物語にする」という理念で会社を経営しています。

キャリアアップを目指す方は、この機会に私達と一緒にプログラミングを学んでみませんか?

8月枠も残りわずか当社人気の転職保証コース
プログラミング学習から転職成功まで導く、当社人気のWebCamp Proコース。
7月受入枠は満員となっております。8月枠に向け、お早めの申込みをオススメします。
プログラミング未経験でもエンジニア転職を絶対成功させたい
スキルを身に着けて人生を自ら切り開きたい
上記にあてはまる方は、ぜひご検討ください!

▼未経験から1ヶ月でWebデザイン・プログラミングを学びたい方はこちら!

▼ついに開講!オンラインでWebデザインを学びたい方はこちら!

関連キーワード
学習の関連記事
  • プログラム演習は技術向上に役立つ?【脱初心者】
  • プログラミング効率を上げるエディタの選び方とオススメ
  • プログラミングコンテストの応募内容と対策方法を徹底解説
  • 【中学生・高校生向け】プログラミング初心者にオススメの言語と教室
  • 【初心者向け】プログラミングを勉強するサークル7選!
  • プログラミング習得時間はどのくらい必要なのか?

当サイトで人気のオススメ転職サービスTOP3

1位 マイナビエージェント×IT

おすすめポイント

・平日忙しい人も、土曜日開催の個別キャリア相談会に参加できる

・職種や仕事内容(要件定義、上流工程から携わる仕事など)の要望が細かくできる
・マイナビの規模を活かした豊富で幅広い求人数

マイナビエージェント×ITの登録はこちら

2位 レバテックキャリア

おすすめポイント

・求人登録数4,000件以上

・エンジニア未経験、経験者両方に対応

・有名企業の採用担当者インタビューがみれる

・一次面接NGからの内定実績もあるほど、内定率が高い

レバテックキャリアの登録はこちら

 3位 type転職エージェント

おすすめポイント

転職者の71%が年収アップ

・IT系企業、特にエンジニアに限らず営業職の求人も充実している

各職種専門の転職アドバイザーが援助

type転職エージェントの登録はこちら

おすすめの記事