PHP8.2 / PHP8.1 / PHP8.0 / PHP7.4 2021/11/26にリリースされました 2021/07/20、PHP8.1がフィーチャーフリーズしました。 言語機能に関わるような機能の追加・変更が締め切られたということです。 今後はデバッグを繰り返しながら完成度を高めていき、2021/11/25にPHP8.1.0がリリースされる予定です。 というわけでPHP8.1で実装されるRFCを見てみましょう。 RFC Fibers 賛成50反対14で受理。 Fiberです。 PHPで非同期コードを書けるようになります。 $fiber = new Fiber(function (): void { $value = Fiber::suspend('fiber'); echo "レジュームした。$value: ", $value, "\n"; }); $value = $fiber
PHPは長きにわたり同期的、すなわち、あらゆる処理を上から順に実行していくというスタイルを取ってきました。 しかしたとえば、複数のURLからデータを取ってきて結果をまとめたいといった場合、時間のかかるHTTPリクエストは同時に投げたいですよね。 この用途にはGuzzleというライブラリが存在し、これを使えば同時にリクエストを投げられます。 しかし、ではHTTPアクセスとDBアクセスを同時にやりたい場合は? 時間のかかる計算を裏でやりたい場合は? などと考え始めると、こういった個別のライブラリでは対処しきれません。 ということで汎用的な非同期処理をPHPで書けるようにするRFCが提出されました。 PHP RFC: Fibers Introduction 人類史上ほぼ全ての期間において、人々はPHPを同期的なコードとしてのみ書いてきました。 同期的に実行されるコードのみが存在し、そしてそれを同
この記事はPHP Advent Calendar 2019の5日目の記事です。 はじめに 私は6年前に、PHP Advent Calendar 2013として「PHPだってシェル経由でないコマンド呼び出し機能が欲しい」という記事を書きました。その中で、OSコマンドインジェクション対策の根本的かつ安全な対策は「シェルを経由しないコマンド呼び出し」であることを指摘した上で、末尾に以下のように書きました。 PHPコミッタのみなさま、PHP5.6の新機能として、シェルを経由しないコマンド呼び出しの機能を追加できませんか? 現実には当時からPCNTL関数にてシェルを経由しないコマンド呼び出しはできたのですが、当関数の使用が難しいことと、CLI版あるいはCGI版(FastCGIは可)のPHPでないとサポートされていないなどの制限があり、popenやproc_openなど使いやすいコマンド呼び出し関数に
動きの早いフロントエンド界隈や他の言語の躍進の話題に押されて、いつまでも古い知識のままPHPで開発していませんか? 知識のアップデートに役立つ、最近のフレームワークの動向を、ちょっと辛口な現状分析とともに。 私が約1年前に書いた記事の続きを書くことにしたのは次の質問を受けたからです。 Q:PHP MVCフレームワークについて近況を教えてください。(2017/2/24) A:PHPのフレームワークといえば、現時点ではLaravelとSymfonyに尽きます。これから新しいプロジェクトを始めるなら、わざわざCakePHP、Zend、CodeIgniter、Yiiなどを使う理由は見当たりません。これらのフレームワークを使い慣れているか開発経験のある開発者がいないのなら、使う理由はないでしょう。 実際に開発が始まったら、ツールやプラグインを集めたり、よくある問題への対処方法を調べたりする必要があり
11. コードの差分から diff -r -u joomla-3.4.5/libraries/joomla/session/session.php joomla-3.4.6/libraries/joomla/session/session.php --- joomla-3.4.5/libraries/joomla/session/session.php 2015-10-21 17:48:16.000000000 +0900 +++ joomla-3.4.6/libraries/joomla/session/session.php 2015-12-14 14:42:12.000000000 +0900 - - // Check for clients browser - if (in_array('fix_browser', $this->_security) && isset($_SERV
PHPカンファレンス関西2016の基調講演です。
更新: 2016年4月27日11時5分頃 Movable Typeのプラグイン「ケータイキット for Movable Type」にOSコマンドインジェクションの脆弱性があったという話が出ており、J-WAVEの64万件の個人情報流出はこれが原因だったとされています。 J-WAVEでも64万件の個人情報流出の可能性、原因ソフトの利用者は至急パッチ適用を (itpro.nikkeibp.co.jp)「ケータイキット for Movable Type」にOSコマンドインジェクションの脆弱性、利用者は修正バージョンへアップデートを、すでにJ-WAVEへの攻撃で悪用 (internet.watch.impress.co.jp)ケータイキット for Movable Type の脆弱性についてまとめてみた (d.hatena.ne.jp)配布元のアイデアマンズからは、4月22日にまず「緊急パッチファイ
I've been searching for about 2 hours and I can't figure it out how to read the final response uri. In previous versions of PHP Guzzle you just call $response->getEffectiveUrl() and you get it. I expected to have something similar in the new version so the final code looks like this: $response = $httpClient->post('http://service.com/login', [ 'form_params' => [ 'user' => $user, 'padss' => $pass, ]
私が覚えている限り、非常に重い(または非同期の)タスク処理に関して、PHPは常に厳しい評価をされていました。これまではずっと、長いタスクを並列化したければ pcntl_fork を通してフォークするという方法を取らなければいけなかったので、タスクの結果を適切に処理することができませんでした。 そこで私たちは、キューイング(どちらかと言えばタスクを遅くするだけ)やReactPHP、または他の言語を一緒に使うといった、より複雑なソリューションへと向かっていきましたが、PHPでもスレッド処理は可能なのです。そしてより重要なのは、 その方法はあなたが思っているよりもはるかに簡単だということです。 この記事では、 pthreads 拡張(POSIX Threadsの略)について説明します。2012年ごろから広く使われていますが、多くの人がその存在を忘れているか、使うのが苦痛だと考えると思います。その
Joomla!にコード実行脆弱性(CVE-2015-8562)があり、パッチ公開前から攻撃が観測されていたと話題になっています。 Joomlaに深刻な脆弱性、パッチ公開2日前から攻撃横行 「Joomla!」に再び深刻な脆弱性、3.4.6への速やかなアップデートを推奨 パッチ公開の前に攻撃が始まる状態を「ゼロデイ脆弱性」と言いますが、それでは、この脆弱性のメカニズムはどんなものだろうかと思い、調べてみました。 結論から言えば、この問題はJoomla!側に重大な脆弱性はなく、PHPの既知の脆弱性(CVE-2015-6835)が原因でしたので報告します。 exploitを調べてみる 既にこの問題のexploitは公開されていますが、悪い子が真似するといけないのでURL等は割愛します。以下のページでは攻撃の原理が説明されています。 Vulnerability Details: Joomla! Re
PHPの生みの親、ラスマス・ラードフ氏インタビュー 2015年12月に無事公開されたPHP7。その公開に先立ってPHPの生みの親であるラスマス・ラードフ氏に話を伺う機会がありました。英語で行われた一時間のインタビューは長大ですがラスマス氏の思想がよく分かる話題が多く、可能な限りそのままの形でお伝えすべく、その模様すべてをお届けします。 なお、インタビューは10月に開催されたPHPカンファレンス2015の講演終了後に行われ、リリースに関する話題などはその時点でのものです。 現在の仕事と生い立ち ―――― まずは、PHPを作ってくださってありがとうございます。今日の基調講演もすばらしかったです。 ラスマス:ありがとうございます。 ―――― いきなりですが、個人的な質問から始めてもいいでしょうか。 ラスマス:どうぞ。 ―――― Etsyではどのようなお仕事をなさっているんですか? ラスマ
「PHP 7」正式版が登場。PHPにとって10年ぶりのメジャーバージョンアップ。実行速度は旧バージョンの2倍以上 PHPの公式サイトでは、PHP 5.6.xからPHP 7.0へ移行するためのガイド「Migrating from PHP 5.6.x to PHP 7.0.x」も公開されています。 開発者であるRasmus Lerdorf氏は10月に来日し、「PHPカンファレンス2015」で講演。PHP 7ではPHP 5との互換性を維持しつつ、2倍以上の性能向上とメモリ使用量の低減など、大きな改善が実現されことを示していました。「実際に世界中で使われているPHPアプリケーションの性能が2倍になるのが主な特長です」(Rasmus Lerdorf氏。10月に開催された「PHPカンファレンス2015」にて)。 さらにLerdorf氏は次のようにPHPにはさらに高速化の余地があると説明しています。 「
「PHP 7」登場。10年ぶりのメジャーバージョンアップで実行速度はPHP 5の2倍以上に、PHPの生みの親が語る。PHPカンファレンス2015(前編) WordpressやFacebookなど、Webのさまざまなサービスで使われているPHP言語。約10年ぶりのメジャーバージョンアップとなる「PHP 7」がもうすぐ登場予定です。 PHP 7では互換性を維持しつつ、従来のPHP 5と比べて2倍以上の性能向上やメモリ使用量を低減するなど、大きな改善が実現されます。 そのPHPの生みの親であるRasmus Lerdorf氏が来日し、10月3日に都内で行われた「PHPカンファレンス2015」の基調講演「SPEEDING UP THE WEB WITH PHP 7」においてPHP7の新機能や性能について詳しく解説しました。 その内容をダイジェストで紹介しましょう。 SPEEDING UP THE W
既にいくつかの記事で指摘がありますが、PHPのunserialize関数に外部由来の値を処理させると脆弱性の原因になります。 しかし、ブログ記事等を見ていると、外部由来の値をunserialize関数に処理させているケースが多くあります。 ユースケースの一例としては、「複数の値をクッキーにセットする方法」として用いる場合です。 PHP クッキーに複数の値を一括登録する方法という記事では、以下の方法で複数の値をクッキーにセットしています。 $status = array( "height" => 167, "weight" => 50, "sight" => 1.2 ); setcookie("status", serialize($status)); クッキーの受け取り側は以下のコードです。 print_r(unserialize($_COOKIE['status'])); 出力結果は以下
Google Cloud Platform Blog: App Engine for PHP is generally available. Build scalable apps, faster. Google App EngineのPHPは2013年10月に公開ベータとして利用可能になっていました。 Google App EngineのPHPでは、負荷に合わせて自動的にスケールするPHPの実行環境が提供されるだけでなく、たとえアプリケーションの運用中でもPHPのセキュリティパッチなどが自動で適用されるとのこと。 また、Google Cloud SQLやGoogle Cloud Storageのようなスケーラブルなデータストアも利用できます。 Google App EngineのPHPのバージョンは5.5。チュートリアルとして、すぐにWordPressを試せる「Quick Start W
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く