LoginSignup
2
2

More than 5 years have passed since last update.

PHP Conference kansai 2018

Posted at

割と適当なメモ書き。

Project ICKX のあきらさんの話

普段はPHP5.3.3→PHP7.2.* へ上げる作業。ハードだった。

FlyWheel2の話

Flywheel2: Rapid Application Development Framework.

2010年あたりに、使いやすいやつを作った。

フローコントロール

コントローラはCakePHPみたいな感じになっている。ルータからはコントローラ名→アクション名で実装。

コントローラ

値、状態を管理して、制御実行の流れを制御

  1. Validation
  2. Action
  3. DisplayView, DisplayUserError, Forward, Redirect

Web,Cli問わずに、本来的に必要とされる機能を実装。(2010年当時のPHPにはなかったのよ、ホントに)

アクション

例えばポイントシステムがあった時:アクションは大きいくくり。

ルールでアクションの流れを決める。

配列で記述した設定ベースで動く感じっぽい。

source code 解説

普通のPHPがPixivになるまで

tadsanさん。

Pixiv

作品7000万、画像は14,000万以上
apache httpd を 53台でさばいている

pixiv.git

一つのリポジトリにそれぞれのサービスのサービス+ライブラリが入っている

Realworld of Pixiv の補足

  1. framework は使ってない: はじめから使っていないため。
  2. フルスクラッチはしない。コード量が多すぎるため。

歴史図

  • 2012年初め synfony
  • 2013年 pixiv.git
    • submodule 大丈夫?
    • けどまぁ意外と。。。

ふつうのPHP とは?

  • apache + mod_php
    • 昔からの documentoRoot にあるphp
    • /member.php?id=10111... ←これ
    • seoの都合で残ってる
  • LAMP
  • テンプレートエンジンは smarty を使っている

Apprunner

  • 由来不明
    • try/cache や whoops など

2018年ごろ

URLとファイルは切り離されて、連想配列で挙動を切り替える形。

クラス

  • PSR0 で統一
  • Classは static で使っている(去年のスライドで)
    • 昔に書かれたClassが良くなかったので、一度 static クラスにして、とりなおしをしている。

PDO 問題

  • 全てのクエリーは文字列に書いている…
  • IN 句が素のPDOでは難しいので、PxvSqlを作っている。
  • PDOラッパー
    • 読み込み、書き込みを切り分けて使うことが可能

新機能はどうする?

  • 実装されたブランチをリリースする時マージ
    • 意図していない時にビッグバンマージが起きる
  • 先にマージさせておいて、実行されないように
    • 理想としてはこっち。

有効無効:IPアドレスではなく、devtoggule を作っている。

管理画面から devtoggle クッキーを設定していれば、クッキーを見て挙動を切り替える。

LT

DBのFixture を作った話

2
2
0

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
2
2