PHPカンファレンス関西 2017の発表資料です。
PHPカンファレンス関西 2017の発表資料です。
こんにちは、グーペグループエンジニア @hypermkt と技術部インフラグループ・シニアエンジニア @hfm です。半年に及ぶグーペのPHPアップグレード作業が2017年5月中旬に全て完了し、PHPバージョンは5.2から7.1になりました。今回の記事ではアップグレードの過程と効果について、ご紹介させていただきます。 はじめに 8年目のホームページ作成サービス「グーペ」 なぜ8年目のタイミングでアップグレードをしたのか アップグレード基本方針 PHP5.2との後方互換性を維持する deprecatedの対応は優先度低め 事前準備 新旧両バージョンで継続的テスト より広範囲をカバーできるE2Eテストを重視 リアルタイムエラー検知 下位互換性のない変更点の修正 php7ccによる互換性の自動検知 MySQL関数の削除 preg_replaceへの置き換え PHP7.1用php.iniの作成 リ
列挙型 - Wikipedia まず列挙型の定義は〜となるんだけど、ここでは「あらかじめ定義した値のいずれかしか取らない特殊な型」という感じを想定してます。 要はSplEnumみたいなのですが、拡張モジュールの力を借りなくても、PHPだけで作れます。リフレクションを使うだけ。 <?php abstract class Enum { private $scalar; public function __construct($value) { $ref = new ReflectionObject($this); $consts = $ref->getConstants(); if (! in_array($value, $consts, true)) { throw new InvalidArgumentException; } $this->scalar = $value; } final
自分はawspecやkomaなど、gemのリリースにずっとoctoreleaseを使っていて、いつも便利さを感じています(mizzyさんありがとうございます)。 k1low.hatenablog.com 特に便利な機能は、関連PRへのコメントとリリースノートのPullRequestへのリンクです。 これは、PullRequestしてくれた人へのお知らせだけでなく自分用のメモとしてもとても重宝しています。 ところが、最近個人的に課題がありました。 octoreleaseは他の言語では使えない octorelease の Node版とPHP版が欲しい— k1LoW (@k1LoW) 2017年5月1日 OSS活動をしていて、Rubyでは簡単にできるのにJavaScriptやPHPでできないことにストレスを感じていました。 それがoctreleaseを利用したリリースでした。 というわけで、やっ
PHPカンファレンス福岡2017の登壇資料です。
はじめに PHP7へのverupをきっかけに 安定したシステム運用 保守しやすいコード を目指し、少しずつ色々なことを試みています。 この記事では、私が行なっているコード改善の取り組みを共有したいと思います。 一般的なものしか書いていないかもしれませんが。。。 スタイルガイドを守れているかphpcsを使ってチェックする 私が参加しているプロジェクトにはpearベースのスタイルガイドがあるにはあったのですが、 出来上がったコードを機械的にチェックする仕組みがありませんでした。 PHP7へのマイグレーションを契機に、コードがスタイルガイドに沿って書かれているかPHP_CodeSnifferを使って機械的にチェックするようにしました。 このツールは有名ですので説明は不要かもしれませんが簡単に説明すると、 phpcs : 定義したスタイルガイドに違反していないかチェックする phpcbf : コー
2014年に書いた PHP CS Fixer の記事 が今でも読まれているのですが、2016年末にリリースされた PHP CS Fixer v2.0 で後方互換のない変更が多く入っており情報が古くなっているため、改めて v2 について書いてみようと思います。なお現時点での最新版は v2.1.2 となります。 fivestar.hatenablog.com PHP CS Fixer とは PHP CS Fixer は PHP コードをコーディング規約 (CS = Coding Standards) に沿って補正してくれるライブラリです。歴史を辿ると、元々は Symfony のプロジェクトリードの fabpot 氏が作成したもので、 PSR-½ 、あるいは Symfony のコーディング規約 に沿ってコードを補正する機能が実装されています。 github.com チームでコードを書くときはコー
(当日はesaのプレゼンテーションモードで発表しました) (pixiv night in Fukuoka #02 - ピクシブを取り巻く技術がわかる一夜! - connpass の発表資料です) 自己紹介 各種SNSをcatatsuyでやっている かたついと呼ばれることが多い ピクシブ株式会社で開発基盤チームと広告チームの兼任 2014年度新卒(2013/10入社) pixivの技術的な改善が主な業務(後で詳しく) 単著『pixivエンジニアが教えるプログラミング入門(星海社新書) ピクシブ社内の非エンジニア向けのプログラミング研修の書籍化 pixiv社内ISUCONやISUCON6本選の問題作成 pixivのチーム分け pixivというサービスは巨大 www.pixiv.net/touch.pixiv.net/スマートフォン用APIなどなど 提供しているサービスも多い pixivという1
はじめまして。 「ボーイフレンド(仮)きらめき☆ノート」(以降、ボイきら)でサーバサイドエンジニアをしております、伊藤です。今回はAWS(主にAurora周り)とPHPを使用して高信頼性かつハイパフォーマンスなシステムを構築するためのノウハウを共有させて頂きたいと思います。 目次 はじめに キャッシュの話 自動化・自動生成の話 Auroraの話 Zephirの話 おわりに はじめに まずはじめに、ボイきらのサービスとシステムの概要を簡単にご紹介します。 サービスの概要 ボイきらは2016年11月15日にリリースした女性向けリズムゲームです。事前登録は24万人を突破し、リリース後はAppleStoreの無料ランキングで1位を獲得しました。サービスの運用で特徴的なのはリリースが約2ヶ月で以下の5種類の新イベントを計11回も開催していることです。 マラソンイベント レイドイベント ハイスコアイベ
(Last Updated On: 2018年8月13日)HMACの応用的な使い方をここ数本のブログで書いてきましたが、HMACの基本的な使い方を紹介していませんでした。リクエストパラメーターを安全に検証/バリデーションする方法を例に紹介します。unserialize()を安全に利用する利用例にもなります。 参考: HMACハッシュの使い方のまとめ HMACが考案された背景 HMACをAPIキーのバリデーションに使う方法を紹介する前に、何故HAMCが考案されたのか紹介します。 HMACはRFC 2104で標準化されています。HMACは基本的に暗号学的なハッシュ関数をより安全に利用するために考案されました。暗号学的なハッシュ関数といってもコンピュータの高速化やハッシュアルゴリズム自体の脆弱性の発見などにより、時間と共に危殆化します。 ハッシュ関数が「暗号学的なハッシュ関数」とされる条件を満た
(Last Updated On: 2018年8月18日)より高度なCSRF対策 – URL/URI個別にバリデーションする方法でハッシュ(HMAC)を使えばデータベースを使わずに有効期限付きのURLを作れる、と紹介しました。今回はパスワード付きURL(URI)の作り方を紹介します。 まず、安全性についてはハッシュ(HMAC)を使って有効期限付きURLを作る方法を参照してください。 ハッシュ(HMAC)を使って有効期限付きURL/URIを作る方法とほとんど同じです。以下の方法でデータベースを使わずにパスワード付き(この例の場合は有効期限付き)のURIを作れます。 <?php // 有効期限付きURIの作成 // 有効期限付きURIにするURI $uri = 'http://example.com/some_path'; // 秘密鍵 - 'secure random data'はrando
(Last Updated On: 2018年8月13日)より高度なCSRF対策 – URL/URI個別にバリデーションする方法でハッシュ(HMAC)を使えばデータベースを使わずに有効期限付きのURLを作れる、と紹介しました。今回は有効期限付きURL(URI)の作り方を紹介します。 ハッシュ値(鍵)の安全性 より高度なCSRF対策 – URI個別にバリデーションする方法のハッシュ関数の安全な使い方の紹介が不十分なところもあるので、このエントリでもう少し詳しく説明します。RFC 5869のHKDFのようなハッシュ関数は以下のように書けます。 <?php // RFC 5869のHKDFのようなハッシュ値を求める $prk =hash_hmac('sha256', 'some key', 'salt'); $hkdf_like_key = hash_hmac('sha256', $prk, '
git/GitHubが使える ひとりで開発するときに使うコマンドが使える 調べれば、チームで開発するときに使うコマンドが使えるPHPが使える 細かいのはphp.netで調べれば大体わかるフレームワーク(Symfony2+Doctrine+Twig、できれば3も)マイクロフレームワークの経験(趣味・実務どちらでも)MySQLが使える CRUDができてインデックスはれて簡単なテーブルなら設計できるJavaScriptが使える jQueryとフレームワーク(React、Vueのいずれか)が使える相談しながら、要件定義→基本設計→(詳細設計→)実装できる仕様どおりに作って締め切り守れるなら、実務経験年数は0でなければいいリモートワーク可。地方在住でもOKプライベートでも勉強してる(ペースは問わない)学歴不問要は「PHP+MySQL+JavaScriptで頼んだWebシステムを作ってくれる」人に来て
{ "name": "name", "description": "description", "type": "project", "require": { "deployer/deployer": "*", "deployphp/recipes": "*" } } -rw-rw-r-- 1 tutida tutida 236 12月 10 21:03 composer.json -rw-rw-r-- 1 tutida tutida 65820 12月 10 21:05 composer.lock -rw-rw-r-- 1 tutida tutida 65820 12月 10 21:05 deploy.php drwxrwxr-x 18 tutida tutida 4096 12月 10 21:05 vendor 基本的な使い方 基本的な使い方は公式やすでに紹介していただいている記事もあ
定義済み例外とSPL例外 PHPにはPHP本体が持つ定義済み例外とPHPに標準でバンドルされるStandard PHP Library(SPL)の例外のSPL例外の2種類の例外があります。SPLは標準で組み込まれるのでPHPの機能として標準的に使うことも可能ですが、マニュアルでも個別のページを持っています。 定義済み例外 SPL例外 SPL例外 SPLの作者はPDOなど多数のパッケーのleadを務められているMarcus Börgerさんです。(PECLサイト参照 https://pecl.php.net/user/helly) MarcusさんがSPLのために作成したスライドStandard PHP Libraryから例外の部分を2つ抜粋します。 「守るべき3つのルール」 例外は例外の時に使用する (Exceptions are exceptions) 制御構造のために例外を用いない (
こんにちは、エンジニアの榎本です。 チーム開発において、ファイル数やクラスが増えてくると、新しいメンバーに説明をする際など、ドキュメントがないと説明が難しくなってくることがあります しかし実際のところ、ドキュメントを作成する工数を確保できず、せっかく作ったドキュメントがあってもどんどん陳腐化している現場も多いのではないでしょうか そのため、今回は phpDocumentor を用いて PHP のコードから自動でドキュメントを生成する方法を紹介したいと思います 作業環境 CentOS 7.2 PHP 7.0.12 Composer 1.2.2 phpDocumentor のインストール まずは新規にディレクトリを作成し、Composer で phpDocumentor をインストールします $ mkdir dev $ cd dev $ composer require --dev phpdo
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く