PHPでWebサイトを作るときの定番フレームワークの1つに Laravel がある。
これは Git Hub で 3万を超える星の数や、1万を超えるフォークの数、
5千を超えるコミット回数と ほぼ黄緑のコントリビューションの更新回数を見ると
どうもこの おっさん1人で がんばってるんじゃないか、と思うほど
器用に更新され続けているように見える。
評判をググってみよう。
「Laravelを使うべきか」kore1server
https://kore1server.com/322/Laravel%E3%82%92%E4%BD%BF%E3%81%86%E3%81%B9%E3%81%8D%E3%81%8B
ソースコードは ぐちゃぐちゃらしい。
「phpフレームワーク laravel を仕事で使っている人はいますか?」teratail
https://teratail.com/questions/14946
他にシンプルなフレームワークがあるのに、なんで Laravel を使うのか、という話しらしい。
特に難しいのは 「構築」段階で、それ以降は楽らしい。
「Laravelとは..?! このフレームワーク流行ってるの?」ハマログ
https://blog.e2info.co.jp/2016/05/06/laravel%E3%81%A8%E3%81%AF-%E3%81%93%E3%81%AE%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF%E6%B5%81%E8%A1%8C%E3%81%A3%E3%81%A6%E3%82%8B%E3%81%AE%EF%BC%9F/
「「Laravel 5」を使って簡単な投稿フォームを作成する」tv asahi mediaplex
http://www.mediaplex.co.jp/blogs/creative/laravel-5-form/
Laravelが言う「簡単」というのは、テンプレートが用意されていて 特定のパターンなら簡単だ、という話しに見える。
どんなテンプレートがあるのか分からないが……。
フレームワークなんで、何をしたら実行速度が高速化するのかとか、メモリが省メモリになるのかとか、そういうコンピューターの方を向いた意味でのプログラミングは全部丸投げだろう。
どんな実用的な問題を解決してくれるのか、業務、画面デザインの方を調べたいところだ。
日本語版のサイトのようなドメインもあった。
「ウェブ職人のためのPHPフレームワーク。」
http://laravel.jp/
おそらく このサイトは PHPと Laravel で作られていることが期待できる。
コミュニティや ドキュメントは 数人で回してるんだろうか。
エヴァンジェリストが回してる感がある。
「Laravel を使った開発」indival
https://www.indival.co.jp/2016/10/19/3341/
すると テンプレを調べたらいいのか。
「【初心者向け】Laravel5 Bladeテンプレートでレイアウトを作る方法」
http://tech-swing.net/web/blade/
うーむ。
Laravel を使うだけでなく、
何に どんな部品を 使うかも調べないとダメか。
Blade、というか PHPテンプレートエンジン とは?
「Laravel 5.1 Bladeテンプレート」
https://readouble.com/laravel/5.1/ja/blade.html
知ってるPHPと違う。
PHPのフレームワークでは HTMLの中に
<?php
と書くなどして PHP を埋め込むやつと、もう独自でただのテキストのやつとかがある。
独自形式ということは デバッグ用のソフトも独自のものになりやすいということだ。
「完全版! テンプレートエンジン チートシート (blade, twig, volt, smarty, mustache, の比較もあるよ)」sekaie engineers' blog
http://sekaie.hatenablog.com/entry/2015/12/08/203810
うわー。
Laravel の人気が伸びているのは、ビュー(HTMLとか書くやつ)に Blade を使っているからじゃないか、と思えなくもない。
書式は PHP に似ているようだ。
じゃあ Blade は 後で覚える ことにしよう。次。
Laravel の Version は 5.1 を勉強しておけばいいのか。
LTS (Long Term Support)というのが、不具合対応が長めに続く安定サポート版で、
それが直近では v5.1、来月に v5.5 が LTS に加わる予定らしい。
じゃあ、とりあえず Version 5.1 だけ勉強しよ。
なんか Version 5.1 に付いてない機能もありそうだ。Artisan Console とか。
Version 5.5 に乗り換えることを狙って Version 5.4 を勉強するのもありか。
山ほど出てくる PHP5.4以降の連想配列
「配列」
http://php.net/manual/ja/language.types.array.php
なんか、
「Database: Getting Started」
https://laravel.com/docs/5.1/database
'mysql' => [
'read' => [
'host' => '192.168.1.1',
],
'write' => [
'host' => '196.168.1.2'
],
'driver' => 'mysql',
'database' => 'database',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
],
こういう感じで PHP5.4 以降の連想配列の書き方が山ほど 出てくるんだが、
=>
という記号が出てくるせいで C#マンには難しいことを考えてしまうが
単に 名前 => 値 なんで、
シングルクォーテーションとか カンマとか いっぱいで
目が ちかちか してしまうんだが 省いてみれば、
mysql :
read :
host : 192.168.1.1
write :
host : 196.168.1.2
driver : mysql
database : database
username : root
password :
charset : utf8
collation : utf8_unicode_ci
prefix :
これぐらいの意味だ。PHPの連想配列の読みにくさが悪い。
ただの コンフィグ・ファイル ぐらいの意味で、
こういう連想配列でデータを受け渡しするのが 山ほど出てくる。
mysql.read.host = '192.168.1.1' 、とか1個1個書いていく
プログラミングとは ちょっと違う。
C# は C# で別の簡略化した初期化方法を用意しているが、
構文のせいで 自分に分かりづらくなっているところはある。
PHPの構文に目を慣らさないと、C#プログラマーには何がビューティフルか分かりにくい
「Artisan Console」
https://laravel.com/docs/5.1/artisan
よく こんな書き方をする。
$this->drip->send(User::find($this->argument('user')));
->
とか、 ::
とか出てきて目がぼんやりしてくるんだが、もし C# だったら こんな書き方になる。
this.drip.send( User.find( this.argument("user") ) ) ;
慣れるしかない。
他のPHPに比べると ビューティフルなコード、という意味なのかもしれない。
インストールするにも
「Installation」
https://laravel.com/docs/5.4
公式のインストール方法を読んでもさっぱりわからん。
「How To Install Laravel PHP Framework on a CentOS 7 or RHEL 7」syslint
https://syslint.com/blog/tutorial/how-to-install-laravel-php-framework-on-a-centos-7-or-rhel-7/
うーむ。
データベースは mariaDB ?
MySQL と mariaDB は 一緒に入れてるとバッティングするような記事も読んだし、
MySQL 捨てていいんなら MySQL 捨てて mariaDB で行くんだが、
客が どっちにしてください、と言うかなんて 分からないからな。
mariaDB の方がいいかと思うんだが、
「Debian(Wheezly 7)で MySQLからMariaDB へ移行してみる」
http://server-setting.info/debian/debian-wheezly-mysql2mariedb.html
よくよく考えると 日本の客先で多いのは Oracle だよな。
Oracle は MySQL 買収したんだっけ?
うーむ。
どこまで外国の大企業に税金払うのが好きなんだろな。それにもよる。
個人でやるなら mariaDB なんだが。
データベース決まらないんで座学で
周辺知識だけ調べておこう。
ディレクトリーは
/var/www/laravel
といった感じにするのがいいんだろうか。
そこへ composer を使って インストールしたらいいのか。
しかし何を。
Laravel の API
ドキュメントはあるようだ。
「Namespaces」Laravel API
https://laravel.com/api/5.4/
なんで Laravel のネームスペースの名前が illuminate なのか分からないが 分けわからん。
他の人も なんだこれと思ってるようだ。
「Laravelソースコードの歩き方」kore1server
https://kore1server.com/326