YYPHP♯33「RailsとPHPのFWの違い、WordPress以外で使いやすいCMS、45歳からはじめるPHP」

これは2018年03月28日に開催したPHPerイベント[YYPHP#33]のイベントレポートです。

[YYPHP]は一言で「PHPerの部室」です。PHPについて、雑に、ゆるく、ワイワイ話し合う集いです。毎回お題を決めずに雑談を出発点にいろいろなことを突発的にやります。集まった人でコードリーディングをすることもあれば、一緒に開発ツールを触ってみたり、フレームワークについての情報交換をすることもあります。開催はほぼ**毎週**、高田馬場にて。

[YYPHP#33]: https://yyphp.connpass.com/event/82977/
[YYPHP]: https://yyphp.connpass.com/

![](https://qiita-image-store.s3.amazonaws.com/0/889/0051f99f-b555-6064-fcc9-3280e5543a1a.png)

## 参加者 
①PHP歴、②今日話したいこと/聞きたいこと、③自己紹介
* suin (すいん)、13年、EC系システム
* nouphet (たけはら ヌーペット)、半年から5時間
* YutaroM0224 (まつなが)、半年、4月からAndroid開発、専門学校でPHP
* 氷川 霧霞 (ひかわ きりか)、10年、営業ばっかり、久々WPコードと格闘、名古屋
* hotikawa (ほりかわ)、4週間、元営業マン、4月からエンジニア
* keisuke shingaki (しんがき)、7年、普段熊本、出張で参加、ﾌﾘｰ
* reoring (れおりん) 15年、新米フルスタックエンジニア？？

Slack参加

* k-kuwahara
* Tame

## CakePHPの勉強のしかた
* どうやってCakePHPを勉強したか？
* 初期の勉強方法を聞いてみたい
* Cake2とCake3は別物
* ウェブのドキュメントを普通に読んでいく
    * https://book.cakephp.org/3.0/ja/tutorials-and-examples.html
    * そこにしかちゃんとした情報が無い気が……
* Railsに近い気がする
    * CakeはRailsから影響を受けているので当然
* はじめてのPHP
* パーフェクトPHP
    * PHP5系なのでちょっと書き方が古いので注意すること
* CakePHP3のEntityとTableって特殊では？
    * エンタープライズ・アーキテクチャのDataMapperパターン
    * ActiveRecordではない

## フレームワークでの開発
* LaravelとかCakePHPの話し
* 沢山種類があるので、フレームワークによってどのような違いがあるの?
* MVCパターンは大抵同じ
* フルスタックフレームワーク
    * DB、ORM、アセットパイプライン、マイグレーション、テンプレート……etc
    * マイクロフレームワークと比べて遅め
    * 現場で使われているのはフルスタックフレームワークが多い
        * 自分で機能を作らないでいい
        * エンジニアを採用しやすい
        * マイクロフレームワークで始めても、気づくとフルスタックフレームワークと同じ機能を自分で実装していて、フルスタックフレームワークでよかったじゃんってなる
        * Laravelからいらないのを削るか、Lumenに必要なのを足すか
* マイクロフレームワーク
    * Lumen、Slim3、Silex
    * ルーティングの機能しかない
    * 学習コストが低い
    * マイクロサービスで使うのはありそう
* Laravel一択の空気感
* CakePHPのほうがやろうしていることができなかったりして面倒だったりする
    * Vueのサポートが公式でないとか
* ミニマルなマイクロフレームワークは、個人での開発や規模の小さいプロジェクトでしか使われない印象ですねー。
* 複数人でシステムを作るなら、機能が揃っている方が車輪の再発明や別ライブラリの選定のコストがかからないので。

## RailsとPHPのフレームワークの違い
* そんなに違わない、あんまない
* 基本はMVC
* 圧倒的に違う所
    * gemの量
    * RailsはRubyで事実上一択
    * Rubyistの開発リソースが集中するので、エコシステムがでかい
    * PHPはフレームワークが乱立してきたので、Railsに比べるとエコシステムが成熟してない
    * 最近はLaravelに集まってきているので、Rails的なエコシステムになるかも？
* どっちで開発したらいいか
* 素のPHPで書いたほうが最初は早い
* Railsはレゴブロックみたい
    * 誰かが作ってるgemを探してインストールしておしまいみたいな作り方ができる
    * プログラミングするより設定するシーンが多い
* 人材

## Laravelを使っていて、Vueを使うときの棲み分け
* SPA(Single Page Application)にするならPHPじゃなくていいのでは…?
    * いいと思う
* Nuxtはいいのか？
    * https://ja.nuxtjs.org/
    * よさそう
* 最近思うこと
    * サーバサイドもNodeでいいんじゃないか？
    * サーバサイドいらないんじゃないか？
        * 裏にAWS Lambdaなどを使う
        * Firebaseとか
        * OpenFaaS(Function as a Service)
        * Google Function
* フレームワークのMVCのVの部分がフロントに出るなら
    * 後ろはフルスタックフレームワークじゃなくていいのではないか
* モデルが組みたいとなったら
    * バックエンドは必要かも
    * Model as a Serviceがほしい
* Vue書く時TypeScript?
    * 今はまざってる
    * TSのほうがいいと思う
    * VuexのstoreらへんはTSのほうがよさそう

## ワードプレス以外に使いやすいCMSあるのか?
* 何が有るか？
* Bashで動くCMS！？
* WordPress→Nuxt→S3
* 静的サイト
    * https://www.gatsbyjs.org/
* http://keystonejs.com/
    * JSだけで書かれたCMS
* [Grav - A Modern Flat-File CMS | Grav](https://getgrav.org/)
    * DBをつかわないCMS(PHP製)
* [October - The PHP CMS platform that gets back to basics.](https://octobercms.com/)
* HeadlessCMS
    * [headlessCMS | Top Content Management Systems for JAMstack sites](https://headlesscms.org/)
    * 管理画面しかないCMS
    * 表画面は開発者が自由に作れる
    * Gatsbyは裏にヘッドレスCMSがあるのが前提っぽい

[What is a Headless CMS? | CSS-Tricks](https://css-tricks.com/what-is-a-headless-cms/)
![headless.svg (47.9 kB)](https://c16e-esa.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/5606/2018/03/29/18740/ba3a296d-0f3f-4f26-8f6a-74b70166afe1.svg)


* CaaS (Content as a Service)
    * [GraphCMS - The GraphQL Headless CMS](https://graphcms.com/)
    * [Contentful: Content Infrastructure for Digital Teams](https://www.contentful.com/)
    * 色々あるんですね。
* GraphQLってどうなんですか？
    * いいんじゃないですか😄

## YYPHPの運営について (reoring)
* そろそろDiscord？

## 竹原さんコーナー 「45歳からはじめるPHP」
* 多少はかけそうです
    * 九九の表を出力するコードを書いた
* echoとprintの違い
    * printは1を返す
* Udemyの「PHP初級プログラミング講座 初級 その1」

## Node.jsをどうやって勉強するか
* expressを勉強する
* [Nest - A progressive Node.js web framework](https://nestjs.com/)

## 妄言
* 今日は「裏」でPHP勉強会(あくまでYYPHPが表)


## YYPHPは毎週やってます

PHPについてワイワイ話したい方は、[YYPHPのイベント情報](https://yyphp.connpass.com/)をチェックしてみて下さい。

以上、YYPHPのレポートでした。次回もワイワイやっていきたいと思います！ では、また来週！