7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

web初心者がcakephp3を導入からやってみた

Last updated at Posted at 2016-06-24

どうも
いつもはvvvvをいじっているキドです。
今年からはwebを触り始めた見習い初心者マンです。

コーディングやらjsやらは調べてコード読めばわかる程度になったので、じゃあ次はサーバ寄りでもやってみようと思ってphpを触り始めました。

最初はhtmlに書き込んでDBと連携させる簡単なものしか作れませんでしたが、フレームワークを使って実用的なものを作ってみようと思って今回はCakePHP3を入れてみました。
その導入までを自分用メモ代わりに投稿します!

フレームワークとは

枠組みとかそんな感じの意味です。

だいぶ投げやりですけど私も大まかにしか知らないので。
簡単に言うと、ある程度まで必要とされる機能やらが既に備わっていて決められたところを自分好みに書き加えていけばモノが作れます。
って感じのものだと思います。

PHPのフレームワークはいろいろあるらしいですが、初心者なので他のは詳しく知りません。
なので気になる人は調べてみてください。

参考:コード部「これでスッキリわかる!最新PHPのフレームワーク7選!」
https://blog.codecamp.jp/php_frameworks
(更新:2016/03/01)

CakePHPを選んだ理由

web初心者なりの考えでCakePHPを選んだ理由としては、

美味しそうだから

と、簡単な理由もあるんですが、
設定より規約重視って言うのに惹かれた感じです。
柔軟に動けるのって大事かなって思って。
(更新2016/7/2現在:柔軟というより、規約が定まっているからプロジェクトの場合に動きやすいイメージに変わった。)
Laravelも勉強しているのでどっちにしようか迷ったんですが、CakePHPの方がフォルダ構成を見て数が少ないから覚えやすいかなって思ったのも一つの理由ですね。

開発環境

Macのローカル環境でやります。

・MAMP
・Composer
・CakePHP3

な感じで、
何番煎じかわからないですけどやっていきます。

MAMP

MAMPをインストールします。 https://www.mamp.info

因みにMAMPって、
Macintosh + Apache + MySQL + PHP
の頭文字をとった略称らしいですね。
でもMAMP for windowsってあるんですよね。謎です。

インストールしたらデフォルトPHPを変更してあげましょう。
Macは元からPHPがインストールされているらしいので、
それをMAMPのPHPに変更させてあげる必要があるわけです。
何はともあれターミナルを叩いていきます。

$ which php

と実行してあげると、「/usr/bin/php」と返ってきますが、これが元からMacに入っているPHPですね。
確認したら、.bash_profileをvim開いて変更してあげましょう。

$ vim ~/.bash_profile

そしたら次の行を書き加えてください。

export PATH=/Applications/MAMP/bin/php/php7.0.0/bin:$PATH

追加できたらおk。
ちなみにphp7.0.0はphpのバージョンを指定できるようなのでやりたいバージョンでやってみてください。
それからvimの操作で閉じるときに「:q」では変更が保存されていないので気をつけて下さい。保存して終了は「:wq」です。
私みたいにならないように操作は覚えておきましょう( ತಎತ)
保存したら

$ source ~/.bash_profile

を実行すると設定を再読み込みしてくれます。
念のためもう一度

$ which php

を実行して「/Applications/MAMP/bin/php/php7.0.0/bin/php」と返って来れば設定完了です。
これでMAMPのPHPに変更ができました。

MAMPの設定

MAMPって日本語でのデフォルト文字エンコードはUTF-8じゃないみたいなので直してあげます。 その詳細を詳しく書いてくれてる記事がありますのでご参照ください。 http://qiita.com/redamoon/items/28e7bbe1ccbf58cbbd04

Composer

次にComposerです。

ComposerはPHPの依存管理ツールです。 Composerはあなたのプロジェクトが必要とする依存ライブラリを定義できるようにして、インストールを行います。

と説明されていますが、わからない人もいるかもしれません。私もいまいちよくわかっていなかったり。
簡単に説明すると、必要なパッケージを自動でインストールして持ってきてくれる便利屋さんって感じのやつです。そんな感じのイメージで大丈夫だそうです。

では、インストールしていきます。
サイトからダウンロードも出来るのだと思いますが、今回はターミナルからcurlコマンドをつかってインストールしてみます。

まずComposerが入っているか確認します。念のためです。

$ composer -v

入っていなければ「command not found」とこんなコマンド知らんわって返ってきます。入ってなければ当然ですね。
なのでインストールしていくのですが、その前に適当なディレクトリに移動しておきましょう。今回は「~・/tmp」に移動します。移動したらComposerをダウンロードしましょう。

$ cd ~/tmp/
$ curl -sS https://getcomposer.org/installer | php

ダウンロードしたら、composer.pharをPATHの通った場所に置きます。

$ mv composer.phar /usr/local/bin/composer

パーミッションで失敗する場合はsudo mvを付けて実行してみてください。
この場所はグローバルインストールとかなんとか言うらしくて、これをすることでphp composer.pharの代わりにcomposerだけで実行が出来るようになるそうです。
このあたり詳しく学んでおきたいですね、個人的に。

$ composer -v

を実行してcomposerのバージョンが表示されたらOKです!

CakePHP3

やっとCakePHPをインストールできます! 早速、プロジェクトを管理したいディレクトリへ`cd`で移動してコマンドを実行しましょう。
$ composer create-project --prefer-dict cakephp/app appname

最後のappnameは好きな名前で書き込んでください。これがプロジェクト名になるようです。
実行したら少し時間がかかりますが、ログがズラーッと並んで最後に「Set Folder Permissions? (Default to Y) [Y,n]?」と聞かれます。
これはログとかを保存するディレクトリ(logsかtmpとか?)に書き込み権限を与えて良いか聞いているんですって。まぁパーミッションどうする?って聞いてるのでわかりますかね。
特に問題なければYと答えましょう。
これでディレクトリを確認するとappnameと好きな名前を付けたディレクトリがあると思います。

インストールはこれでOKです!
Composerが無かったらもっと時間がかかっているかもしれませんね…

確認してみる

ちゃんとMAMPで動くのか確認してみます。 MAMPの設定画面からApacheのドキュメントルートを先ほどのappnameディレクトリに変更したら、

にアクセスしてCakePHPのページ?が表示されたら導入成功です!

実はこれでCakePHP3のブログチュートリアルの「tmp と logs ディレクトリのパーミッション」までが完了しました。次回はこのブログチュートリアルを記事に出来れば良いなと思ってます。
参考に:
http://book.cakephp.org/3.0/ja/tutorials-and-examples/blog/blog.html

これでCakePHP3をMAMPで触れるようになりましたね!
私も勉強しながらアウトプットをしているので、同じように初心者の人にもとっつきやすいような記事を書いていきたいと思いますので。

では、お疲れ様でした~

7
7
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?