YYPHP#62「PHP5の終了について、PHP7を現場でみんなどのくらいやってる?、PHP業界のこと、VagrantでLaravel環境を作ったその先、管理画面をどうやってつくってる?、フレームワークのコードリーディング、オブジェクト指向とかMVCがうまく扱えない」

これは2018年11月23日に開催したPHPerイベントYYPHP#62のイベントレポートです。

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

YouTubeでの配信映像はこちら-> #YYPHP #62【PHPの情報交換・ワイワイ話そう・仲間作り・ゆるめ・にぎやかめ】

参与者

    • PHP歴

1年未満: 7名
2年: 1名
3年: 1名
10年以上: 6名

聊天话题

关于PHP5的结束(reoring)

支持的版本

    • 2018/12月末で終了

 

    • 世界で

80%がPHP
5系では61%

RedHat/CentOSは古いバージョンでもパッチを出してくれるはず

サーバを移動できる人なら、バージョンアップできるのでは?

バージョンを上げるよりサーバを上げるほうが楽

PHP5系からPHP7系に書き換えるサービスが出てきそう
PHP5とPHP7でそんなに違う?

5.2と5.3はかなり違う
PHP: PHP 7.0.x で推奨されなくなる機能 – Manual

セキュリティサポート終了時期

7.0→2019年1月
7.1→???

ちゃんとアップデートできるようにしておきたいですね

在现场,大家都用了多久的PHP7?(来自climbFrog的问候)

    • PHP7使っている

6名

それ以外は?

Javaです
電話です
5.3: 1名

最初から7系でやっているのか、アップデートして7系にしたのか?

最初から7.1だった
5.3であげられずにいるプロダクトも持ってる
はじめから7.1で作った

アップデートしたことある人いますか?
5.3から7にアップデートするアドバイスください

PHP公式ドキュメントの参考にマイグレーションする
テストでチェックしながらあげていく

テストがないとつらいですが

アップデートに対応できる人が少ない

アップデートにとりかかると他の開発がとまっちゃう

バージョンアップを諦めてWAFで防いだほうがいいかも

バージョンアップするコストとWAFを買うのどっちが安いか試算したほうがいい
WAF入れるなら何百万で済むし、オープンソースのもある

ローカル環境で動かしてみて、どの程度対応が必要か見てみる

Warningとかあんまり重大じゃないエラーとかならほっとくことも

書き直しは変なことやってなければそこまで大変じゃないけど、7系の環境用意して一通りテストしなきゃいけないのでそっちが大変だったみたいです。

我想了解PHP行业(高桥先生(kt_engineer))。

    • 今、SESで働いている(Java)

PHPのベンチャーにSESしたとき2ヶ月くらいだったが楽しかった

PHPのベンチャーに転職したいと考えてる
PHPをどっから手をつければいいのか

今JavaができるのはPHPでプログラミングするときも役立つ

PHPもオブジェクト指向で書くことが多いが、デザパタとかJava由来のものが多いので

最初なにやってますか?

PaizaでPHPを勉強した

環境構築不要!初心者でも楽しく学習できるプログラミング入門サービス【paizaラーニング】
お題があって、それを何分いないにやりなさいという感じ
ゲーム感覚で覚えられる

Udemyという動画コースで学んだ

ちょいちょいセールやってて、1コース1000円くらいで買えた
PHP初級プログラミング講座 初級 その1 | Udemy
PHP初級プログラミング講座 初級 その2 | Udemy

最近は動画で学ぶのが当たり前なの?

最近は多い気がする
初心者は本を読んでも分からないときがあるし、
ハンズオン形式だから分かりやすいのでは?

動画を見ながら一時停止してみる
1.5倍速再生があるのがおすすめ

繰り返し聞きたいところだけ、普通に再生してよくきく

CentOSで環境を作っている

yum install php httpd mariadb

#YYPHP #46 #動画でわかるDocker Laravelハンズオン – YouTube
動画でわかるDocker – docker
【たった1時間半でできる】YouTube動画でDocker基礎 + Laravel開発環境ハンズオン #YYPHP|湊川あい@わかばちゃんと学ぶ本 発売中|note
最初はスクリプトだけでPHPの動くコードを書いてみる

ウェブサーバー、DBなしで
nouphetさんのおすすめの勉強法
分けて勉強するのは大事

お題

九九の表
再帰関数

PHP Quiz – llminatoll

YYPHP#43「フレームワークを使うと何ができるの?CakePHPでカレントのメニューの色を変える、レイヤードアーキテクチャとValue Object、どうやってPHPでプログラムを作ってる?PHPUnit、大規模開発、yyphp-quiz No.2: 月間カレンダーの表をつくろう、yyphp-quiz No.3: 多次元配列から要素」 – Qiita

エディタは何がおすすめ?

PhpStormが一択

シンタクスチェックをしてくれるので、書いてるときに問題がわかる
Javaだとコンパル時にわかるが、PHPは実行してみないと分からない
高いですよね?

買う価値は十分にある
30日間を無料

補完
リファクターも楽

他のIDEに比べて優れてる点は

NetBeans、Eclipse等のプラグインだと、PhpStormほど深い解析が行えない

SublimeよりはVS Codeのほうがおすすめ

無料でPHPをさくっと書きたいならVS Code

我在Vagrant上创建了Laravel环境,但是不知道接下来应该做什么,所以想请教一下(むらお先生(cellotape))。

絶対に挫折させないアプリ開発 はじめてのLaravel – plumsa – BOOTH

1,200円(ダウンロード版QRコードつき)

ダウンロード版は1,000円

タスクリストを3回作るので、深く理解できる。

素のPHPで作る
Laravelで簡単に作る
Laravelでちゃんと作る

本を読んだ後に深めていくTipsも9章に書いてある

你是怎样创建管理界面的?(小村先生(toshikish))

    • ジェネレータータイプのものを使ったけど、カスタムするのが大変だった。

Laravelで。
laravel

Laravel使ってる人: 3名

z-song/laravel-admin: Build a full-featured administrative interface in ten minutes

laravel-adminで管理画面を速攻で構築する。 – Qiita

Voyager – The Missing Laravel Admin

Welcome to Laravel Voyager – Qiita

InfyOm Laravel Generator : Laravel Scaffold, CRUD, API Generator

Scaffoldしてくれるだけなのか?

Larapack.io

Laravel Voyagerのプラグインがたくさんあるところ

larapack/awesome-voyager: Curated list of Laravel Voyager ressources

Laravel Voyager関連の便利ツールのリンク集

Laravel Nova – Beautifully-designed administration panel for Laravel

Viron · Automated admin tool

API作ったら
Riotなので、ちょっと「うーん」となっちゃう

ReactとかVueと比べて、ユーザが少ない
エコシステムが小さいと

フレームワークのコードリーディングのうまいやり方ってあるの? (すずきさん(yamotuki))

    • DBのキャッシュとセッションのキャッシュをわけたい。

キャッシュはStores。Redis、Memcache
セッションはDriversを直接読んでる

クラス図やシーケンス図をざっくりかきながら追っかけていく

自分で作るか
PhpStormに作らせるか

Exceptionを出してスタックトレースを見てる
PHP: debug_print_backtrace – Manual
デバッガーでおいかける

MacにPHPを入れるのが一番早い
ステップ実行

xdebug

pecl install xdebug

phpdbg

phpdbgを使ったステップ実行まとめ – Simple IT Life

オブジェクト指向とかMVCがうまく扱えない (おぬきさん(yokenzan))

    • 仕様変更が入ったときに逆に手間が増えている気がして、いい本とかアドバイスを聞きたい。

 

    • 一人で書いてたときは悩んでなかったが、仕事で書いていて、どこにどういうのを書いたらいいか悩むようになった。

 

    • デザインパターンを無理やり当てはめちゃったり。

 

    • 先を見越して実装する必要はない

いまある仕様で、最小の実装でやるのがいい

最初から何にでも対応できるようにするのは不可能なので

要求変更が出てきたときに、リファクタリングできるようにする

N+1問題

LaravelのORMを使ったほうが楽
Reflectionを使ってるから補完が効かない

プロダクトを作るときは、極力コードを書かない方針をとったほうがいい

自分で作ると自分でテスト保守しないといけない
vs Laravelチームがテスト保守してくれる

設計を勉強したほうがいいか
interfaceの切り方が間違っている可能性がある

interfaceに持たせるメソッドは最大1つにしている @suin

SOLIDを勉強してみるといいかも
ペチオブ

林さんが先生でオブジェクト指向を教わる勉強会

もともと社内勉強会で、社内のエンジニアの技術力向上のために始めたもの

毎週オブジェクト指向についてやってる
ぺちオブ – connpass
動画配信はまだやってない

开会前的闲聊

中国人工智能领域的重要开源项目之一为PHP-ML。

    php-ai/php-ml: PHP-ML – Machine Learning library for PHP

提及到的書籍

    プログラマのための ディープラーニングのしくみがわかる数学入門 | 増井 敏克 |本 | 通販 | Amazon