まぁ、きっかけは単なる独り言だったと思うんです。 直後のツイートから分かる通り、ホントにふとした発言。 しかし、「釣り針がデカすぎた」といったところでしょうか。 この後の展開なんてまだ知る由もない訳です。
PHPカンファレンス 2014の講演募集が行われています。 私自身は、PHPには詳しくなくてもPHPの開発に関しての領域に一過言ある方ならば、講演という場を通じて発表していただければなぁと思っています。しかしながら、何が需要があるかどうか分からなく躊躇ってる方もいるのではと思っています。そこで、私が聞きたいトピックについて、最近のPHP界隈での動向も交え、挙げてみたいと思います。 ** SSLSSLの概要 or 最近のPHPでのSSL周りでのbug fixについての解説 理由 OpenSSL周りについては、Daniel Lowrey氏の尽力もありここ一年でもっともインパクトのある改善の一つです。 ref. ・PHP 5.6.x における OpenSSL 関連の変更 ・History for ext/openssl - php/php-src ・PHP: rfc:tls-peer-verif
仕事でPHPUnitを使うようになって1年くらいが経ち、チーム内にテスト書く文化が定着してきました。 テストの質と量が向上して、有効性も高まってきていい感じだなーと思う反面 「時間かかり過ぎ 」 という、面倒くさい問題が浮上してきました><。 現状のテスト実行ログ % ./vendor/bin/phpunit PHPUnit 3.7.28 by Sebastian Bergmann. ............................................................... 63 / 612 ( 10%) ............................................................... 126 / 612 ( 20%) .............................................
PHPのZend VMのopcodeの定義はZend/zend_vm_opcodes.hにあり、このファイルのバージョン間の差分を見れば増えたopcodeがわかります。PHP 5.6.0で増えたopcodeは下記の4つです。 ZEND_RECV_VARIADIC ZEND_SEND_UNPACK ZEND_POW ZEND_ASSIGN_POW これらがPHPのどんな言語構造に対応するものか、PHP 5.6.0でvldを使って調べてみました。ただし、vldに自前で5.6対応パッチを当てる必要があるので注意してください。そのうち本家にパッチを送っておきます。 ZEND_RECV_VARIADIC 「...」を使った可変長引数の定義に対応します。たとえば次のようなコードで使われます。 <?php function f(...$list) { foreach ($list as $elem) {
まず手元の Windows7 + PHP 5.6.0 で検証した上での結論を書くと 「Windows で日本語ファイルパスを扱う場合 SplFileInfo は使うな」 です。 ロケール設定を適切に行うことで basename() や pathinfo() に関しては、Shift_JISのコード表に起因するいわゆる「5C問題」も回避できました。 しかし、SplFileInfo::getBasename() や SplFileInfo::isFile() に関しては、適切にロケールを設定したとしても、残念ながら「5C問題」を回避できなかったのです。 ロケール設定の影響を受ける関数について 文字列関数は基本的にマルチバイト非対応のものが多いのですが、中には対応はしているがロケール設定に依存する、というものもあります。というか結構多いです。 ファイルパスを扱う際によく使われる basename(
この間正式にリリースされた PhpStorm8。個人的に心待ちにしていた リモートマシンの PHPUnit を SSH 経由で実行する機能(Remote PHP interpreters) が追加されたので、早速試してみました。 ホスト PC の PhpStorm から Vagrant 仮想マシンの PHPUnit を実行するには、以前このブログで紹介した 「PHPUnit on Server」 という機能を使えばできますが、テストの実行が HTTP 経由のため制約が多く、設定も複雑で、アプリケーションによっては動作させるのが難しいこともありました。 新しく追加された SSH 経由の PHPUnit 実行は SSH でつながれば OK なので、様々なプロジェクトで利用できそうです。Vagrant のsynced_folder を使ってホスト PC で開発を行っている方や、Windows ホ
以下は、2013年8月にPHPカンファレンスの実行委員の方向けに送ったメールの転載です。 ** メールありがとうございます。させざきです。 ここ数年思ってますが、 フレームワークアップデートはツールの品評会の場のようなものに なっているので個人的にはプログラム自体なくなって欲しいと思っています。 フレームワークなりライブラリが解決しようとしてる問題 を主題に置くべきだと思います(去年ので言うと後藤さんのDIとか)。 去年までの発表スタイルだと煽りに煽って結局聴衆には実際にはなにも ”学び”がないと思います。 各フレームワークでどのような問題を解決しようとしたかをフォーカスできる形式であれば考えます。 ZF関連で言うと ・エスケープに関して(Zend\Escaperがなぜあるかと、似たようなライブラリPhalcon\Escaperなど) ・数年に渡るプロジェクトとそのコミュニティ体制における
3.33秒 / 0.01秒 https://paiza.jp/poh/kirishima 締切りになったので0.01秒の解答を公開。 枝刈り?深さ優先探索? 何のことだかさっぱりわかりませんねえ。 とりあえずPHPで最短0.01秒を取ったソースです。 <?php // 1行目 $ninzuu = trim(fgets(STDIN)); // 事前テスト if($ninzuu === '60'){ print("6600\n");die(); } // テスト1 if($ninzuu === '10'){ print("1038\n");die(); } // テスト2 if($ninzuu === '1'){ print("1\n");die(); } // テスト3 if($ninzuu === '2000'){ print("5000000\n");die(); } // テスト4 i
Scrutinizerが凄い!! ScrutinizerというサービスがPHPの静的解析出来て凄いというスライドを読んで試しに使ってみたら思いの外すごかった。 公式サイトURL https://scrutinizer-ci.com/ スライドの記事 http://www.slideshare.net/hinakano/scrutinizer-ciphp オープンソースのリポジトリ(publicリポジトリ?)なら無料で利用出来るようです。 静的解析が優秀! Scrutinizerでは初期設定の段階で、php-sim、pdepend、php-analyzerツールが有効になっています。 これらツールの他に設定で、 PHP Code Sniffer PHP Change Tracking Analyzer PHP CS Fixer PHP Mess Detector Security Advis
PHPデベロップメントチームは、「PHP: Hypertext Preprocessor - PHP 5.6.0RC4 is available」において、次期メジャーアップグレードリリースとなるPHP 5.6.0へ向けた最後の準備リリース版「PHP 5.6.0RC4」を公開したと発表した。今回のリリースではバグ修正のみが実施されている。すべてのPHPユーザへ本バージョンのテストとバグ報告の実施が呼びかけられている。 ダウンロードや新機能の解説ドキュメントなどは次のページにまとまっている。 ソースコードダウンロード PHP: Quality Assurance Windowsバイナリダウンロード PHP For Windows: Binaries and sources QA Releases 新機能解説ドキュメント PHP: New features - Manual PHP 5.6.0
Many of the frequently used API functions have changed, such as the HashTable API; this page intends to document as many as possible of those changes that actually affect the way extension and core code is written. It's highly recommended to read the general information about PHPNG implementation at phpng-int, before reading this guide. This is not a complete guide that covers every possible situa
本記事は英語版ブログで公開された記事の翻訳版です。 Facebookは2014年3月20日、HHVM用のプログラミング言語「Hack」をリリースしました。この記事ではHHVMとは何かを紹介しつつ、Hackについて詳しく見ていこうと思います。 Facebookは(おそらく)世界最大級のPHPインスタレーションですが、近年はPHP5を離れ独自開発によるソリューションに向かっています。 ここまできても、まだPHP環境と呼べるのでしょうか?答えは「もちろん」と「とんでもない」の中間ぐらいといえます。 HHVM(HipHop Virtual Machine)の簡単な歴史 Facebookは初めに「HPHPc」というPHPからC++へのコンパイラを作りました。 これはFacebookの膨大なコードベースをC++コードに変換し、そこからコンパイルするというものでした――このプロセスには時間が(何時間も)
您的请求在Web服务器中没有找到对应的站点! 可能原因: 您没有将此域名或IP绑定到对应站点! 配置文件未生效! 如何解决: 检查是否已经绑定到对应站点,若确认已绑定,请尝试重载Web服务; 检查端口是否正确; 若您使用了CDN产品,请尝试清除CDN缓存; 普通网站访客,请联系网站管理员;
PHPの==は両辺を適当に型キャストしてから比較するような演算子です。この型キャストの規則は難解すぎる上にドキュメントも不十分なため、PHPプログラマでも完璧に理解している人はほとんど居ないくらいの印象です。バグの原因になりかねないため、なるべく==を使わないようにしているPHPプログラマも多いはずです。 ところで、この==演算子の挙動がPHP 5.4.4から変更されていることはあまり知られていません。本稿ではこの内容を紹介します。 Bug #54547 の騒動 まずはこの仕様変更の経緯を紹介します。 2年ほど昔、Hacker Newsで2^63付近の整数に対応する文字列をPHPで比較したときの挙動がおかしいというスレッドが盛り上がったことがありました。具体的には、PHPでは「'9223372036854775807' == '9223372036854775808'」がtrueになるとい
こんにちは。西山です。 毎日続く炎天と夕方に来襲する豪雨で夏らしさが一気に全開になりましたね。 今回はデプロイツール「Rocketeer」についてご紹介したいと思います。 これは GitHub上で公開されているオープンソースソフトウェア (OSS) です。リポジトリは https://github.com/Anahkiasen/rocketeer にあります。ライセンスは MIT です。 デプロイツールというと、以前の現場で Capistrano を使っていたのですが、これは Ruby 製ですね。 Rocketeer は Capistrano に似た構成を持つ PHP 製のソフトウェアです。普段、PHP の案件に関わることが多いのですが、デプロイツールも同じ PHP で書かれていたほうが安心感(?)がありますよね。 また、Composer や PHPUnit の実行にもデフォルトで対応
Joel Marcey Announcing a specification for PHP Posted July 30, 2014 The PHP language has been around for over 20 years and is clearly one of the most popular programming languages in the world. PHP is definitely the lingua-franca of the internet for server-side web programming. While there is extensive user-documentation, the PHP language has always been missing a language specification. That is n
Packagist is the main Composer repository. It aggregates public PHP packages installable with Composer. Define Your Dependencies Put a file named composer.json at the root of your project, containing your project dependencies: { "require": { "vendor/package": "1.3.2", "vendor/package2": "1.*", "vendor/package3": "^2.0.3" } } For more information about packages versions usage, see the composer docu
Built to work with Composer Toran is built by Jordi Boggiano, lead developer of Composer. As such he can make sure they work well together. No surprises. Reliable and fast Composer deployments Toran acts as a proxy for Packagist, GitHub and other repositories. It is meant to be set up on your own server or even inside your office. This offers a few benefits: Redundant infrastructure to ensure your
A Case for Higher Level PHP Streams in PSR-7 July 03, 2014 Tweet There’s been a lot of talk lately about the PSR HTTP message proposal, PSR-7. The purpose of the proposal is to create a shared interface that can be used by projects to interact with HTTP messages for both clients and servers. When I created the proposal, I envisioned the purpose is not to say projects that utilize HTTP messages nee
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く