タグ

PHPとphpに関するt-wadaのブックマーク (137)

  • 25年に渡る PHP の歴史

    PHPエコシステムに長年関与してきたことで知られるコントリビューターが JetBrains に入社。PhpStorm チームとともに PHP 言語とエコシステムの改善を目指す。

    25年に渡る PHP の歴史
    t-wada
    t-wada 2020/06/09
    PHP25年の歴史。2011,2012年あたりがモダンPHPへの分岐点だったことがわかる。nikicがJetBrainsのPhpStormチームに移籍していたの知らなかった(とても良いニュースだ)
  • PHP 7.2以降におけるPDO::PARAM_INTの仕様変更

    サマリ PHP 7.2以降、PDOの内部実装が変更された。動的プレースホルダ(エミュレーションOFF)にてバインド時にPDO::PARAM_INTを指定した場合、PHP 7.1までは文字列型としてバインドされていたが、PHP 7.2以降では整数型としてバインドされる。 この変更により、従来PDOが内包していた「暗黙の型変換」は解消される一方、integerへの暗黙のキャストにより、整数の最大値を超えた場合に不具合が発生する可能性がある。 この記事を読むのに必要な前提知識 この記事は、以前の記事(下記)の続編のような形になっています。 PDOのサンプルで数値をバインドする際にintにキャストしている理由 この記事では、PDOを用いたサンプルスクリプトでbindValue時にinteger型へのキャストを明示している理由を説明しています。パラメータを文字列として渡した場合、PDO::PARAM

    t-wada
    t-wada 2020/04/02
    おお、あの謎仕様(パラメータを文字列として渡した場合、PDO::PARAM_INTにより整数型を指定しても、SQL文生成時に文字列リテラルとしてバインドされる)とうとう修正されたのか!
  • ChatWorkとPHPと私

    PHPConference 2017 ChatWork株式会社 田中佑樹

    ChatWorkとPHPと私
    t-wada
    t-wada 2017/10/10
    リプレイスするか、それともリファクタリングするか。 ChatWork の中の人が語るだけに、とても説得力がある。
  • OPcache の最適化器の今

    PHP Conference 2017 での発表資料です。 PHP 7.1 から OPcache 内部の最適化器にデータフロー解析が実装され、より効率的なバイトコードが生成されるようになりました。過去と現在の OPcache の最適化器の処理について簡単に紹介したものです。Read less

    OPcache の最適化器の今
    t-wada
    t-wada 2017/10/10
    PHP7.1 以降の (OPcache の) 最適化機構の説明。とてもわかりやすい資料。
  • [phpconfuk2017] PHP7で堅牢なコードを書く - 例外処理、表明プログラミング、契約による設計 和田 卓人

    2017年6月10日開催 PHPカンファレンス福岡2017 Fusicホール 10:30-11:15

    [phpconfuk2017] PHP7で堅牢なコードを書く - 例外処理、表明プログラミング、契約による設計 和田 卓人
    t-wada
    t-wada 2017/07/24
    PHPカンファレンス福岡2017の講演の録画が公開されました。昨年の初演以降何度か改定し洗練させた内容の講演となっています。よろしくお願いします #phpconfuk
  • 1人から始める大規模Webアプリケーションの言語バージョンアップ / version up PHP in large scale application

    2017/06/10 に行われた PHP カンファレンス福岡での資料です

    1人から始める大規模Webアプリケーションの言語バージョンアップ / version up PHP in large scale application
    t-wada
    t-wada 2017/06/12
    尊い。情熱を持ち、権限を委譲された1人が中心となって馬力を出して進め、上手くいったパターン。仕掛かり中の作業量が多くならないように工夫している点も成功のポイントだと思う。
  • なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い

    なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い

    なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
    t-wada
    t-wada 2017/05/29
    "歴史のある OSS だからこそ、抱える問題に目を背けていてはいけない" 読み応えのある資料だった
  • PHPカンファレンス福岡2017

    編について 『PHPカンファレンス福岡2017』が6月10日(土)開催決定! 会場はおなじみ「福岡ファッションビル FFBホール」。 今回も日全国から選りすぐりのPHPerがスピーカーとして参加。 PHPエンジニアの方は是非ご参加ください! 懇親会について 懇親会は18時から同会場で開催されます。日各地のPHPerと交流しましょう!! 懇親会チケットは編チケットとは別になります。下記からご購入ください。 公式Twitterアカウント: @phpcon_fukuoka / 公式ハッシュタグ: #phpconfuk 2017.7.24 セッション動画を公開しました 2017.6.25 以下のブログに取り上げていただきました PHPカンファレンス福岡で「WordPressのこれから」というタイトルで話してきました! イベントレポート「PHPカンファレンス福岡2017」#ジョンレポ 201

    t-wada
    t-wada 2017/05/08
    昨年のPHPカンファレンス招待講演を改定した内容で講演をさせて頂きます。何卒よろしくお願いします。
  • Symfony 4: Compose your Applications |Articles - Fabien Potencier

    Note: If you are a Medium user, my new articles are now cross-posted there as well. Note: Symfony 4.0 will be released at the end of November 2017. During the next few weeks, I will publish articles about my ideas and the main changes I want to implement for Symfony 4. Symfony 3.0 was boring, a cleaned-up version of the Symfony 2.8 version: Symfony 3.0 = Symfony 2.8 - deprecated features Symfony 4

    Symfony 4: Compose your Applications |Articles - Fabien Potencier
    t-wada
    t-wada 2017/04/03
    "Symfony 4.0 = Symfony 3.0 + all features added in 3.x - deprecated features + a new way to develop applications"
  • 2年半を費やしたチャットワークのScala移行、もしやり直すならどうしますか?(後編) | HRナビ by リクルート

    トレタCTOの増井雄一郎さんがチャットワークのScalaプロジェクトのお話を掘り起こすインタビューの後編です(前編はこちら:チャットワークのScala移行と大規模メッセージDB再構築、当にできたんですね!)。ChatWork CTOの山さんは2年半を費やしたプロジェクトを振り返り、「やっぱりScala化は必要だった」と語ります。 山 2014年4月ぐらいにScala化を決断して、社内で勉強会が立ち上がりつつ、採用をかけていった感じです。2014年7月に加藤潤一(「日Scalaユーザーズグループ」発起人のひとり)というScalaの優秀なエンジニアが入ってくれて。そこから設計をどうしよう、と始まって。しばらくは加藤と、もう1人ぐらいで設計をしていた。それが半年ぐらいあったのかな。 2015年ぐらいから実装を始めて。1年でチームメンバーも増えて、そのときは全部まるっと移そうと計画をたて

    2年半を費やしたチャットワークのScala移行、もしやり直すならどうしますか?(後編) | HRナビ by リクルート
    t-wada
    t-wada 2017/02/24
    インタビュー後半。こちらも興味深い。 " 増井 2年半は辛いですよね" "山本 結構、いや、だいぶ辛かったですね"
  • チャットワークのScala移行と大規模メッセージDB再構築、本当にできたんですね!(前編) | HRナビ by リクルート

    2016年8月、トレタの増井雄一郎さん(「IT芸人」「フログラマー」で検索!)はPHPからScalaへの移行を表明していたChatWork CTOの山正喜さんに「当にScala化できるんですか?」と直球で聞きました(「PHPからScalaに乗り換えたチャットワークさん、その後どうですか?(前編)」)。そして2017年2月。「移行できたら、ぜひもう一回来てください」との誘いを受けて、再び増井さんがチャットワークにやってきました! 増井 Scala化、おめでとうございます! 山 ありがとうございます。 増井 前回も聞きましたが、読んでない方もいるでしょうから、もう一度聞かせてください。Scalaを入れようと思った時期はいつなんでしょうか。 山 そのあたりはBlog(「チャットワークがScalaを採用する理由、これからのチャレンジ。」)に書いたんですが、2年半前──合宿をしてScala

    チャットワークのScala移行と大規模メッセージDB再構築、本当にできたんですね!(前編) | HRナビ by リクルート
    t-wada
    t-wada 2017/02/24
    増井さん、聞きにくい質問も上手く切り出していて上手い。読者が知りたいことが分かっている。記者も星さんで安定感がある。
  • WordPress 4.7.1 の権限昇格脆弱性について検証した

    エグゼクティブサマリ WordPress 4.7と4.7.1のREST APIに、認証を回避してコンテンツを書き換えられる脆弱性が存在する。攻撃は極めて容易で、その影響は任意コンテンツの書き換えであるため、重大な結果を及ぼす。対策はWordPressの最新版にバージョンアップすることである。 稿では、脆弱性混入の原因について報告する。 はじめに WordPress体に久しぶりに重大な脆弱性が見つかったと発表されました。 こんな風に書くと、WordPressの脆弱性なんてしょっちゅう見つかっているという意見もありそうですが、能動的かつ認証なしに、侵入できる脆弱性はここ数年出ていないように思います。そういうクラスのものが久しぶりに見つかったということですね。 WordPress、更新版で深刻な脆弱性を修正 安全確保のため情報公開を先送り Make WordPress Core Conten

    WordPress 4.7.1 の権限昇格脆弱性について検証した
    t-wada
    t-wada 2017/02/07
    攻撃があまりに容易で戦慄する。これはひどいバグだ……
  • PhanでPHPのコーディング規約を自動チェックしよう - Qiita

    再演: 「PHP7で堅牢なコードを書く - 例外処理、表明プログラミング、契約による設計」 + αという勉強会で、「assertぐらいでエバルんじゃねえ!」というふざけたタイトルで発表してきました。 資料はこちら。 PHP7では内部的にASTを作るようになりまして、それをPHP側から使えるようにするphp-astというC拡張があります。これを使って型推論つきの静的解析をするツールがPhanです。 Phanでは未定義変数や型に関する間違いを警告してくれるのですが、そういう明らかなバグの他にも自前のプラグインを作ってエラーをチェックすることができます。 スライドの趣旨としては、assertの話から入るものの、assertのことが主題ではなく、Phanを使ってコードの自動チェックを充実させようという内容です。 Phanプラグインの作り方 Phanプラグインの書き方は一応ドキュメントがあるのですが

    PhanでPHPのコーディング規約を自動チェックしよう - Qiita
    t-wada
    t-wada 2016/12/16
    PHP の静的解析ツール Phan のプラグインを作り、プロジェクト独自のコーディング規約チェック機能を加える方法について
  • 【改訂版】PHP7で堅牢なコードを書く - 例外処理、表明プログラミング、契約による設計 / PHP Conference 2016 Revised

    2016/12/15 @ PHPカンファレンス2016再演 https://saien.connpass.com/event/45318/

    【改訂版】PHP7で堅牢なコードを書く - 例外処理、表明プログラミング、契約による設計 / PHP Conference 2016 Revised
    t-wada
    t-wada 2016/12/16
    昨日の講演資料を公開しました。PHPカンファレンス講演後の反響とフィードバックを踏まえ、説明の順番や内容を大幅に変更した改訂版の資料です。
  • 複雑さに潜り込む - 大規模PHPアプリケーションにおける例外・モニタリング・ロギング - すずけんメモ

    みなさん、PHP書いてますか?ここ2ヶ月くらいPHPも書いていたのでその話を書きます。 この記事はVOYAGE GROUP techlog / Advent Calendar 2016の記事です。 例えば以下のような話に身に覚えはありませんでしょうか。 例外がどこかで握りつぶされており、例外的状況なのにエラー表示がまちまち。レスポンスステータスも一貫性がない。エラーログが適切に出ていない。 エラーログ出力用コードがいろんなところで散乱している。エラー文字列整形のための適当なヘルパメソッドがクラスごとに実装されている。 エラーごとにエラー表示のためのメッセージを設定するのが面倒になり、「システムエラーが起きました」とだけ表示されるようになってしまった。 例外ハンドリング周りのコードは考えるのが面倒なのでコピペだらけになっている。 オブジェクトの依存関係がクラスのプロパティに大量に埋め込まれて

    複雑さに潜り込む - 大規模PHPアプリケーションにおける例外・モニタリング・ロギング - すずけんメモ
    t-wada
    t-wada 2016/12/15
    5,6年ほど運用されている10万行くらいのPHPアプリケーションを、モニタリング、例外処理の再設計、DIコンテナ導入、デッドコード削除等で立て直していく話。 冒頭の項目は多くの人が身に覚えがありそう
  • 第七回闇PHP勉強会でrealpathキャッシュとデプロイの話をしました - hnwの日記

    昨日12月11日に第七回闇PHP勉強会を開催いたしました。私を含め発表者6人ということで、とても盛り上がった勉強会になりました。発表者の皆さま、またご参加いただいた皆さま、当にありがとうございました。また会場提供いただいたピクシブ株式会社さまにも大変お世話になりました。 以下が私の発表資料です。 PHPアプリケーションをsymlink切り替えでデプロイしているとrealpathキャッシュ絡みで何かしらトラブルがありますよね、というくくりで複数のトピックを紹介するような内容でした。タイトルの通り、一番話したかったのはmod_phpphp-fpmとでOPcacheの挙動が変わる話だったんですが、かなり入り組んだ内容だったのでうまく伝わらなかったかもしれません。 質問タイムに、@edvakfさんから面白いエピソードを聞くことができました。Pixivではこの手の問題に一通りハマった結果、現在で

    第七回闇PHP勉強会でrealpathキャッシュとデプロイの話をしました - hnwの日記
    t-wada
    t-wada 2016/12/12
    "Pixivではこの手の問題に一通りハマった結果、現在では「realpath_cache_size=0」での運用に落ち着いており、性能面でも特に問題は出ていないそうです"
  • PHP でどのように Exception/RuntimeException/LogicException を使い分けるか - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    PHP でどのように Exception/RuntimeException/LogicException を使い分けるか - Qiita
    t-wada
    t-wada 2016/12/05
    PHP の例外設計の基本、 Error, LogicException, RuntimeException とその他の Exception の使い分けについて。バグを示すもの、実行時例外を示すもの、準正常系を示すものなど、きちんと理解しておかなければならない。
  • 和田卓人さん、PHPで堅牢なコードを書く—例外処理、表明プログラミング、契約による設計 〜PHPカンファレンス2016 | gihyo.jp

    PHPカンファレンス2016 レポート 和田卓人さん、PHPで堅牢なコードを書く—例外処理、表明プログラミング、契約による設計 〜PHPカンファレンス2016 2016年11月3日にPHPカンファレンス2016が開催されました。稿では、ゲストスピーカーである和田卓人さんによる講演「PHP7で堅牢なコードを書く - 例外処理、表明プログラミング、契約による設計」についてレポートします。 PHP7では例外や表明の機能が大幅に見直され、強化されました。この講演では、例外処理を設計する際の基的な考え方や、表明(assertion)の使い方、そして表明と例外を使い分け、堅牢なコードに導くための設計手法「契約による設計(Design by Contract⁠)⁠」の考え方を説明しました。 導入 はじめに、和田さん自身が監訳に関わった『SQLアンチパターン』に掲載されているコードを、よりひどくさせた

    和田卓人さん、PHPで堅牢なコードを書く—例外処理、表明プログラミング、契約による設計 〜PHPカンファレンス2016 | gihyo.jp
    t-wada
    t-wada 2016/11/21
    先日の PHP カンファレンス 2016 における講演を、技術評論社様に丁寧なレポート記事にして頂きました。ありがとうございます。
  • フリーエンジニアのIT案件ならレバテックフリーランス

    2016年11月3日(祝)、大田区産業プラザPiOにて開催された国内最大のPHPイベント「PHPカンファレンス2016」。レバテックフリーランスでは、カンファレンスセッションの登壇者のひとり・和田卓人氏にインタビューを実施しました。 テスト駆動開発の先駆者として知られる和田氏ですが、今回の講演テーマは「PHP7で堅牢なコードを書く-例外処理、表明プログラミング、契約による設計」。あえてテスト以外のテーマを設定した理由をはじめ、PHPの優位性や今注目している言語、初心者エンジニアへのアドバイスなど、幅広くお話を伺ってきました。 <この記事の要約> 1. PHPの良い点は、ゆるふわな言語に見せかけて堅牢なコードも書けるところ。悪い点は、覚えることが多くて難しいところ。 2. テストを書いていればコードの品質が高いわけではない。また、テストが書けないくらい問題を抱えたコードでも、中から改善してい

    フリーエンジニアのIT案件ならレバテックフリーランス
    t-wada
    t-wada 2016/11/15
    PHPカンファレンス2016の講演直後にレバテック様から取材頂いたインタビュー記事が公開されました。何卒よろしくお願いします! #phpcon2016
  • PHP 7 at Tumblr

    At Tumblr, we’re always looking for new ways to improve the performance of the site. This means things like adding caching to heavily used codepaths, testing out new CDN configurations, or upgrading underlying software. Recently, in a cross-team effort, we upgraded our full web server fleet from PHP 5 to PHP 7. The whole upgrade was a fun project with some very cool results, so we wanted to share

    PHP 7 at Tumblr
    t-wada
    t-wada 2016/11/15
    Tumblr が PHP7 へ移行。 Phan を使い静的解析を行いつつ、 CI では PHP5 系と 7 系の二系統を回しながら作業。移行により latency, load average 共に大幅に改善