1. Why is PHP7 so fast? PHP7は なぜ速いのか hnw 第85回PHP勉強会 (2014/12/24)発表資料
この記事はPHPアドベントカレンダー2014の22日目の記事です 。 2002年3月に公開されたIPAの人気コンテンツ「セキュアプログラミング講座」が2007年6月に大幅に更新されました。そして、その一節がPHPerたちを激しく刺激することになります。 (1) プログラミング言語の選択 1) 例えば、PHPを避ける 短時日で素早くサイトを立ち上げることのみに着目するのであれば、PHPは悪い処理系ではない。しかし、これまで多くの脆弱性を生んできた経緯があり、改善が進んでいるとはいえまだ十分堅固とは言えない。 セキュアプログラミング講座(アーカイブ)より引用 「PHPを避ける」とまで言われてしまったわけで、当然ながらネット界隈では炎上を起こし、現在はもう少しマイルドな表現に変わっています(参照)。 本稿では、当時のPHPの状況を振り返る手段として、この後PHPのセキュリティ機能がどのように変化
公式リファレンス、読んでる? 「関数についてちょっと分からなくなってGoogle先生経由で来るところ」では勿体ない。 暇な時間に適当にリンクを踏んでいると面白いものを見つけることが出来ます。 in_arrayの第三引数であったり、strtrに渡せる配列であったり、その他の基本モジュールであったり・・・ 「その他の基本モジュール」とは PHP公式リファレンスの果てに広がる闇である。 本日はその一部についてご紹介したいと思います。 各タイトルに公式リファレンスへのリンクを用意しておいたので、気になったものはそちらで詳細を確認して下さい。 1. SPL (Standard PHP Library) http://php.net/manual/ja/book.spl.php みんな大好きSPL。 DirectoryIteratorとかすごく便利。 ディレクトリパスをコンストラクタに渡すと、ディレク
こんにちは!Web開発チームの安達です。 この記事は、ChatWork Advent Calendar2014 15日目の記事です。 みなさん、Scala使ってますか? 今日は「PHPでID生成器を実装してみた」というお話をしたいと思います。 IDの生成ウェブサービスのグローバル展開やスケーラビリティについて考えだすと、IDの生成に関わる課題が浮かび上がってくると思います。 例.「東京とシドニーのデータセンターにサーバを配備したとき、IDが衝突しないように生成できるのかな?」 またサービスの可用性について考えだすと、こちらでもID生成が絡む課題が。 例.「RDBMSのAUTO INCREMENTでIDを生成しているんだけど、この1台が落ちたらサービス止まっちゃう…。」(単一障害点) 理想としては、スケールアウト出来て、複数のサーバで並列にID生成が可能で、単一障害点にならないような形でID
2017/03/30 追記 新しいバージョン (v2.0) の記事を書きましたのでこちらもご覧ください fivestar.hatenablog.com この記事は PHP Advent Calendar 2014 の8日目の記事です。 コーディング規約が守れない方とお悩みの方も、チームメンバーがなかなか守ってくれないとお悩みの方も、 PHP CS Fixer があればもう安心。PHP CS Fixer が PHP コードをコーディング規約に沿って整えてくれるので、秩序ある PHP ライフが約束されるでしょう。 そんなこんなで PHP Advent Calendar 2014 の 8 日目ですね。みなさんこんにちは、 fivestar こと小川です。いつのまにかクロコスがなくなって Y の人になっちゃいましたね。 昨今は PSR (PHP Standard Recommendation) の
この記事はPHP Advent Calendar 2014の7日目です。 僕は先日のPHPカンファレンス2014でPHP7に関するLTをしました(参照:「PHPNGの動向」)。ただ、時間が限られていたこともあり、あまり踏み込んだ内容には触れませんでした。 本稿ではLTの内容から深掘りし、zvalという内部的な構造体がどう変わるのか、性能面のメリットにフォーカスして解説してみます。 PHPをとりまく状況 まず最近のPHPの話題をおさらいしておきましょう。 これまでPHPには実用レベルの別実装が存在しない状態が続いていましたが、HHVMの登場で状況が変わってきました。HHVMはFacebookが開発しているPHP実行環境で、PHPより高速で互換性も高いのが特徴です。Facebookで実際に利用されているだけでなく、他の企業でも商用サービスで利用する事例が増えてきています。 そんな中、2014年
Twitter OAuth 周りは twitteroauth というライブラリ( https://github.com/abraham/twitteroauth )にて。 bot.php bot本体のメインのファイルです。 require_once('twitteroauth/twitteroauth.php'); // OAuth require_once('botconfig.php'); // アクセストークンとか色々大事な定数が保存してある。 require_once('weather.php'); // 天気情報クラス // 現在時刻. タイムゾーンはJST指定 $time = new DateTime('now', new DateTimeZone('Asia/Tokyo')); // ファイルの行をランダムに抽出 $filelist = file('list.txt'); s
よくこういう記事のタイトルを見るけど、Ruby on Rails(以下、Rails)が勝ちだとか、PHPのほうが優れてるだとか、思った方はいますぐ反省するべき。 この記事は、Ruby on Rails Advent Calendar 2014 – Qiitaの1日目の記事です。 こういうものには つかいどきが あるのじゃ 例えば、ページに単純なカウンタを埋め込むだけにRailsを使うでしょうか。今のHTMLにすぐ埋め込むことができるPHPのほうがよっぽど便利で楽でしょう。物事には適材適所という言葉がある通り、同様だと思います。 ここでは、Railsの魅力とかPHPとなぜここまで比べられるかを書いてみます。 (ここでフレームワークと言語を比較している理由は後述ですが世間的によく比較される事が多いため。) おまえ誰よって言われる前に、自己紹介をしておくと自称「IT系なんでも屋さん」。Rails
WordCampTokyo 2015 でのセッションスライド 愛があれば発信できる!WordPressで作る焼き鳥ポータルサイト~公式テーマ・プラグインと子テーマの活用~ 今回お話した内容 ・WordPressの可能性とスケール感を知る ・焼き鳥サイトのデモとサイト構成 ・WordPress公式テーマの活用 ・WordPress公式プラグインの活用 ・WordPressのリデザイン(子テーマ) 自分が好きな焼き鳥をテーマとして、おすすめのプラグインやカスタムフィールドを活用しても店舗出力などを説明しています。 子テーマで効率的に修正するために、add_filter や add_action についてもふれました。 ================= ◆制作業務 TickleCodeという屋号でJavaScript、WordPressでのWebサイト制作やSwiftでのアプリ開発、Ruby
inspired by PHPを勉強するならこれだけは言いたい!PHPのオススメ勉強法 私は、職業プログラマーとしては今年で2年目のペーペーです。それでも上記記事はちょっとなあ、という部分があるので、流れをなぞりつつ、自分なりの考えを書いてみます。 ちなみに、私が参考にしたPHP学習法記事は、WebデザイナーやノンプログラマーにおすすめしたいPHPの勉強法です。 まず、「これやっとけ」メニューを先回りして紹介しておきます(これらを勧める理由は後述)。 プログラミング経験なし:ドットインストールを活用しよう。 プログラミング経験あり:『パーフェクトPHP』を読もう。勉強会に参加しよう。アウトプットをしよう。 PHPは簡単か? 「PHPは簡単」というとき、それはおおよそ、以下のいずれかの意味でしょう。 PHPには、C言語のポインタのような難所はなく、Java言語に比べて覚えることが少ない。した
何も実行してないPHP 要するにPHPのヘッダーだけのコード 本当に何もしてない こいつをまずはValgrindでチェックしてみる ==2783== LEAK SUMMARY: ==2783== definitely lost: 15,176 bytes in 1,067 blocks ==2783== indirectly lost: 2,662 bytes in 44 blocks ==2783== possibly lost: 0 bytes in 0 blocks ==2783== still reachable: 81,456 bytes in 2,693 blocks ==2783== suppressed: 0 bytes in 0 blocks こんなん返ってきた phpのbinaryだけでDefinnnitely lostが15,176 bytes、indirectory
(11/15 16:15追記)本稿で指摘している違いの1件目についてバグレポを書いたところ、すぐ直すよーとのことでした。 (11/18 17:30追記)上記修正がmasterブランチに取り込まれていることを確認しました。 PHPのJITコンパイラ実装であるHHVMが最近話題ですね。本家より高速というふれこみですし、Facebookが開発・実運用している実績もあるわけですから、導入を検討されている方も多いのではないでしょうか。 とはいえ、特に商用環境に導入するとなると互換性がどこまで確保できているかも重要です。現時点でも実運用に耐える程度の互換性はあるはずですが、僕は非常に保守的な人間なので、HHVMが互換性にどこまでこだわっているのかに興味があります。 今回、==演算子に絞ってHHVMとPHPの挙動を調べてみたところ、2点の違いを見つけたので紹介します。比較にはUbuntu14.04上のp
PHPにはheader関数というとても便利な関数があります。 これは簡単に言うとHTTPヘッダー情報を送信するという機能です。 この関数を応用するとリダイレクトのようなことができます。 具体的にはindex.phpに記述しておくと、 header("Location: http://www.domain.com/index2.php") ; と記述すると、index.phpからindex2.phpを呼び出します。つまり、index2.phpへ リダイレクトされます。 ただし、このときに注意しなければいけないことは、このままだと Moved Temporaryになるということです。 SEO的に理想とされるMoved Permanentlyにするためには header("HTTP/1.0 301 Moved Permanently") ; header("Location: http://ww
注意 この記事はBasic認証フローの仕組みを解説することに重点を置いており,セキュリティに関してはあまり考慮しておりません.セキュリティを考慮した実用的な実装に関しては以下をあたってください. PHPによる簡単なログイン認証いろいろ password_verifyは本当にタイミングセーフなのか? 導入 「今どきBasic認証みたいな危険なもの使うなんて…」 なんて心配はさておき、何故以下のような記述でダイアログを交えた認証フローが成り立つのか疑問に思っていました。結論からすれば大したことないんですけど、それがイメージしにくかったのでここにメモしておきます。 <?php switch (true) { case !isset($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']): case $_SERVER['PHP_AUTH_USER']
PHP5.5で入ったarray_column()がとても便利だと言うことを@edvakf@githubに教えてもらった。 DBから取得したデータとか下のような形式になってることがよくある。 <?php $rows = [ 0 => [ 'id' => 40, 'title' => 'dave', 'comment' => 'Hello, world!'], 1 => [ 'id' => 10, 'title' => 'alice', 'comment' => '你好,世界!'], 2 => [ 'id' => 30, 'title' => 'charlie', 'comment' => 'こんにちは、世界!' ], 3 => [ 'id' => 20, 'title' => 'bob', 'comment' => 'Salve , per omnia saecula !' ], ]; こう
20160726 GsNight登壇資料です。 https://atnd.org/events/78168
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く