いやー、もうJavaでWEBアプリ作ること自体どうなのよ?
負の遺産であるStrutsに振り回されてから2年くらい経とうとしているが、今流行りのJavaによるWEBフレームワークって何なんだろう。
いや、Javaが嫌いなわけじゃないが、httpd動かしてtomcat動かして、それ連携させて(今はmod_proxy_ajpなの?mod_jkとかじゃないの?マジで?)、それぞれがログ吐いて、アプリもログ吐いて、俺はどれ見れば良いのよ?ってなるのはもう普通なんです諦めてください的に当たり前で、かつ昔誰か作ったWEBアプリはControllerがやたらと長くてそれも普通なんだろうと言い聞かせていたけれど。
違うんだろ?今は。
つ~か、もうWEBアプリ作って別にお客がそんなに付くわけもないんだからエンタープライズ志向とかなんとか、そんな話はどうでもいいんだよ、多分、俺達には。
つ~か、PHPでいいべ。今は。
まぁ、Railsって選択肢が今風なんだろうけど、PHPによる資産が周りにもあるので、そこは踏襲していこうかと。 ただ、ZendFramework Ver.1系なんだけど。どうしよう。
CakePHP3を試したい!
表題の通り。今更、だけど。 いや、PHPでWEBアプリ作ろうと思ったら、今時のフレームワークは何を選ぶのが良いのか、と考えていた。 一応ZendFrameworkのVer.1は触ったことがある。確か。
あと昨年にPHP7が出たのも知ってる。そしてPHP7は速い!という噂も聞いた。
とにかく、StrutsやらPHP7の使えないZendFrameworkやらから解放されて、というかそこから逃げて兎に角新しさにカマケテ当分はあんまりバージョンアップとか考えなくてもよいものを学習したいなぁ。あと年末だから少し時間あるから勉強してみようかな。 というのがキッカケのエントリーです。
で、PHPのフレームワーク選択だけんども、情報量の多さからCakePHP3とした。 手放しに「好き」だからという理由ではない。グーグル先生に聞けばそれなりの答えが返ってきそうだ、というのが理由だ。 あとZendFrameworkは未だにPHP7に対応しているのか?いないのか?で、疑心暗鬼になったので、この際諦めた。ってのもある。
開発環境(Windows)の構築、の前に
とりあえず、Windows7上で環境構築。
実は最近Windows7の入っていたレッツノートが壊れまして壊れました壊れたんだ。(ノД`)・゜・。。
そこで、マウスコンピューターのノートパソコンを買ってしまいました。出費痛い。でもCOREi7!メモリー16GB!Firefoxタブ50個開いてても余裕!(追記:いや少し微妙。タブ50個は開きすぎw)
で、壊れたレッツノートのWindows7をライセンスが余るので、Windows10上でVmwarePlayer使用してWindows7VM作ってそれを開発環境としちゃおうか!そうしよう!ということにしました。
だってホストOS(Windows10)汚したくないから。
で、以下Windows7VM上でのお話となります。
やっと開発環境(Windows)の構築
XAMPPのインストール
もう、お手軽にXAMPP使います。あんまり好きじゃないけど。 本来ならApache入れて、PHP入れて、MySQL入れて・・・って個別にやっていましたが、よくよく自分のブログ読むと環境構築して終わり、ってのが多いよ!イカンよ、俺!
今回はすぐにでもCakePHP3を触りたいので、XAMPP使います。
で、XAMPPは以下から「7.0.13/PHP7.0.13」を選択してダウンロードしてInstaller叩いてデフォのままインストールしてOK。
PHP.iniの変更
php.iniを一部変更する必要があるみたいです。884行目あたり。セミコロンをとります。何でだ?
スタートメニューからXAMPP Control Panelを起動してApacheの「Start」ボタンクリックでhttpd起動。 ついでにMySQLの「Start」ボタンもクリックでMySQL起動。
http.conf探してDocumentRoot
探したらC:\xampp\htdocs
となっていたので、そこにphpinfo.phpってファイル作って中身は
ってしてブラウザーでhttp://localhost/phpinfo.php
開いて以下の画面が出ることを確認。うわぁっ、やっぱXAMPPお手軽ぅ。
Composerのインストール
Composerって何すか?
調べてみるとQiitaでこんな風に書いてくれてる人がいた。感謝。
で、何でこれ入れなアカンかって言うと、CakePHP3はこのcomposerを使ってインストールするらしい。へー。 ダウンロードしてきてlibに突っ込んでphp.iniでincludeにlib書いてあげる、とかではないのだ。
というわけで、以下からインストーラーをダウンロード&インストール。
インストール時、phpのパス(C:\xampp\php\php.exe
)やproxy配下の場合はproxyサーバーのURLを聞かれたりするので、逐次答えながらインストール。
インストール後にコマンドプロンプト開いて
となればOK。
CakePHP3入りプロジェクトの作成
CakePHP3を導入する場合、プロジェクト作成時にCakePHP3もダウンロードしてきて(ある程度)自動的に設定されるっぽい。
で、プロジェクト作成はcomposerを使ってやるっぽい。
一番手っ取り早いのはApacheのDocumentRootの下でプロジェクト作成するのが良いっぽいのね。
なので、以下を実行。
これだけでCakePHP3を含んだWebアプリのひな型プロジェクトが作成されるみたい。 実際、フォルダの中に色々出来てた。なにこれすごい。
WebアプリからDBへの接続設定
このままだとWebアプリのひな型からDBへの接続時にエラーになるので、MySQLにSampleDB作ってgrant文でユーザー作って、WebアプリからそのDBへの接続設定を実施しちゃう。
DB作成
コマンドプロンプトから以下を実行。
これでDBとDB接続ユーザーの作成が完了。
DB接続設定
あとはひな型プロジェクト(CakeTest)の下のconfig\app.phpを開いて232行目付近を以下のように修正する。
じゃあ、とりあえずブラウザーからWebアプリのひな型を見てみる。
そしたら以下の画面が表示される。うまく行ってるっぽい。
これでひとまずWindows7上でApacheとPHP7とMySQL動かしてさらにCakePHP3の導入が出来たわけだが、これで終わっちゃいかん。
CakePHP3を学習するために
CakePHP3に関するいろいろなチュートリアルや情報サイトを読んでみた。まとめてみる。
1. CakePHP3 クイックスタートガイド
公式ページ。
ブックマークアプリ作成のチュートリアルを通してCakePHP3での開発を学べるみたい。
やっぱ最初に見て実際にやるべきはここのページからなのか?
でも最初がこのサイトってのは敷居が少し高い気もする。。。
2. 「初心者のためのCakePHP3 プログラミング入門」グループ
色々な言語のプログラミング入門本を書いてる掌田津耶乃さんによるチュートリアルページ。
CakePHP3以外のMVCフレームワークを触ったことがある人ならスーっと入ってくる感じ。
そこらへんが分かってないと、ちと辛いかもしれんが、でも調べながら進めていければ多分ここが一番初心者寄りかな。
3. CakePHP3入門・開発チュートリアル
公式ページの「CakePHP3 クイックスタートガイド」チュートリアルを実際にやってみたことを記録してくれている人のページ。
但し、いくつか公式とは異なる部分もあって、例えばDBのテーブル作成部分はマイグレーション機能を使用していたり、あと触りではあるけどプロジェクト作成後にgit管理下にしてみたりと、わりかし実務でやっていることに直結していて、良いよ!このサイト。
公式と見比べながら、また自分でも調べながら実施できるようであれば、かなりCakePHP3を理解できるのではなかろうか。
つ~か、マイグレ使ったことないので参考になったわ。
まとめ
今回はCakePHP3開発環境のセットアップといくつかのチュートリアルサイトを読んでみて、開発方法についてフワッとではあるけど妄想することが出来ました。
もう少し実務に直結させようとするならgitのセットアップと構成(バージョン)管理方法にも言及したり、さらにはユニットテスト、EtoEテストへ繋げなきゃいけないんだけど、まずはWebアプリ作ることが先決だわな。
つ~わけで、ちと勉強してみるべ。
コメント
コメント一覧 (10)
what if you wrote a catchier post title? I ain't
suggesting your information is not good, however suppose
you added something that grabbed folk's attention? I mean フレームワークに振り回されて・・・~CakePHP3事始め~ : DevLife is
a little vanilla. You should look at Yahoo's home
page and see how they write article titles to get people interested.
You might try adding a video or a related picture or two to grab people excited about everything've
got to say. In my opinion, it would make your posts a little bit
more interesting.
on your page at suitable place and other person will also do same for you.
my blog :: [بلیط کیش نوروز](http://xn--ngb4azb01b.xn--zgb7b2q.net/%D8%A8%D9%84%DB%8C%D8%B7-%DA%A9%DB%8C%D8%B4-%D9%86%D9%88%D8%B1%D9%88%D8%B2 "بلیط کیش نوروز")
rdader amused. Вetween yojr wit and ʏour videos, Ӏ was ɑlmost moved tо start my own blog
(ѡell, aⅼmost...HaHa!) Great job. I reаlly loved ѡhɑt youu hhad toο
sаy, and more than that, hߋᴡ you presentеd it. Too cool!
Stор by my blog post ... [inhouse](http://tiny.cc/fwej3y "inhouse")
However, what about this? what if you composed a catchier post title?
I ain't suggesting your content is not solid, however
suppose you added something that grabbed a person's attention? I mean フレームワークに振り回されて・・・~CakePHP3事始め~ :
DevLife is kinda plain. You might peek at Yahoo's home page and watch how
they write post titles to get viewers interested. You might add a related video or a related
pic or two to get people interested about everything've
written. In my opinion, it might make your website a little
bit more interesting.
my weblog ... [Marylyn](http://www.neverstopgoge3.com "Marylyn")
while I was searching on Google for something else, Anyways I am here now and would just like to
say kudos for a remarkable post and a all round entertaining blog (I also love the theme/design), I don’t
have time to look over it all at the minute but I have bookmarked it and also added in your RSS feeds,
so when I have time I will be back to read more, Please do
keep up the superb work.
My web blog: [cctv installation birmingham](https://virtualguard.net "cctv installation birmingham")
what if you added a little content? I ain't suggesting your information isn't good, however suppose
you added a title to possibly grab people's attention? I mean フレームワークに振り回されて・・・~CakePHP3事始め~ : DevLife
is kinda plain. You ought to peek at Yahoo's home page and
see how they write article titles to grab people interested.
You might try adding a video or a picture or two to grab
readers excited about what you've got to say. In my opinion, it could bring your blog a little livelier.
Feel free to surf to my website [minecraft](http://t.co/mfhczapo1t "minecraft")
ound үоu by accident, ԝhile Ӏ was searching oon Digg
foг something else, Αnyhow I ɑm here noԝ and woulԁ just ⅼike tօ ѕay kudos for a tremeendous post andd a аll round thrilling blog
(Ӏ also love the theme/design), І don’t have timе to read through it all at
the minufe Ƅut I haνe book-marked іt and aⅼso included yoᥙr
RSS feeds, sⲟ when I have time І will bе bаck to read more, Pleаsе do
қeep up the superb woгk.
Review mу page [Submit Your Site](http://demoniakmachine.com/wikilibre/index.php?title=Everybody_Enjoys_Best_New_Online_Casino_Site "Submit Your Site")
給料管理システムとか人材育成システムとかそんな所
骨幹がキッチリしている為大人数でも作っても理解しやすく統一しやすい
phpだととりあえずなんとなく書いても動いてしまうため業務システムだと複雑化しすぎて訳解らない状態になりやすいです
代わりに短期でwebサイト作るにはphpが凄く早く作れます
ログインログアウト処理も簡単に実装出来ますから
shared this great post att ɑt thiѕ time.
My website ... [Mycybercasino.com](http://elsasylvan.com/__media__/js/netsoltrademark.php?d=mycybercasino.com "Mycybercasino.com")
24 7? So that Tamil Panpadu & Kalaacharam is FOLLOWED
? IE NO FREE SEX FROM DAY 1 ON TN MAKKAL’S MONEY BY HM’S
BiggBoss3 BiggBossTamil3 BiggBossTamil BiggBoss BB3 VijayTelevision EXCLUSIVE}
My page فیلم سکسی در خانه ([https://chaterba.com](https://chaterba.com "https://chaterba.com"))