タグ

PHPに関するtsuwatchのブックマーク (46)

  • PHP7で変わること ——言語仕様とエンジンの改善ポイント

    Ruby FFIについての解説 Shinjuku.rb #50 PyCallを中心に機械学習やFFIなどを勉強しよう https://shinjukurb.connpass.com/event/58526/ の発表資料です

    PHP7で変わること ——言語仕様とエンジンの改善ポイント
    tsuwatch
    tsuwatch 2015/05/30
  • 【導入決定!】PHP7で実装されるスカラー型宣言とは? | 東北ギーク

    * NaN でなく PHP_INT_MIN から PHP_INT_MAX までの範囲内の値に限る ** 数値形の文字列のみ。数値形の文字列に他の文字が続く場合も使えるが、 Notice が出る *** __toString メソッドを持つもののみ 弱い型検査モードで行われる暗黙の型変換は、PHP が従来他の構文(算術演算子や条件式、組み込み関数の呼び出しなど)で行ってきたのと同等のものです。 厳密モード 一方、厳密な型検査のモードを使う場合は、関数は宣言されたのと正確に一致する型のみを受け付けるようになります(int → float の拡大変換をのぞく)。 ファイルの先頭に declare(strict_types=1); と書くことで、そのファイル内での関数呼び出しの際に厳密モードでの型検査が行われるようになります*1。 以下のように使います。 <?php declare(strict_

    【導入決定!】PHP7で実装されるスカラー型宣言とは? | 東北ギーク
    tsuwatch
    tsuwatch 2015/04/11
  • PHP 7のパフォーマンスが高い理由

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    PHP 7のパフォーマンスが高い理由
  • PHP処理系の一覧 - Qiita

    PHPの処理系について調べてみたところ、想像以上にたくさんあることがわかりました。マイナーなPHP処理系に興味を持った人のために、一覧形式で紹介します。また、他の処理系をご存じの方のタレコミをお待ちしております。 公式処理系 実装言語はC。Windowsを含む全てのプラットフォームに対応しており、実行可能バイナリの形でビルドできる(CLI・CGI・ビルトインサーバ)。また、ApacheモジュールやFastCGIを受け付けるデーモン(PHP-FPM)などの形でも動作する。 その他の処理系(PHPコードがそのまま動くもの) HHVM Facebook製のPHP実行環境。実装言語はC++。JITコンパイルによる高速化が特徴。現時点ではx64 Linux環境がメインターゲットで、MacではJITコンパイラが動かない模様。FastCGIを受け付けるWebアプリケーションサーバとして動作する。また、コ

    PHP処理系の一覧 - Qiita
    tsuwatch
    tsuwatch 2015/03/23
  • PHP 7 Feature Freeze

    Today was the feature freeze for PHP 7. That means no new votes can be started for a feature that is aimed at PHP 7.0, and would instead have to go into PHP 7.1. Instead of heading out to St Patrick's Day with a bunch of New Yorkers making dubious claims about their tenuous connection to Irish ancestry as an excuse to drink, I thought it would be a good time to review some of the more recent RFCs

    tsuwatch
    tsuwatch 2015/03/20
  • PHPとしても実行できるRubyの書きかた - Qiita

    p <<PHP_VERSION <?php PHP_VERSION ;print "\033[1F\033[1M"; //.tap{ define_method :range, -> s,e { s.upto e } } //.tap{ define_method :array_map, -> f,seq { seq.map{ |x| f.(x) } } } //.tap{ define_method :function, -> x,&b { -> x { $x=x;b.call } } } array_map(function($x){ print $x % 15 == 0 ? 'FizzBuzz' : ($x % 3 == 0 ? 'Fizz' : ($x % 5 == 0 ? 'Buzz' : $x)); print "\n"; }, range(1,100)); ruby php.

    PHPとしても実行できるRubyの書きかた - Qiita
  • Javaで書かれたPHP処理系のJPHPが高速だった - hnwの日記

    JPHPというJavaで書かれたPHP処理系があります。これは2013年10月にはじまった新しいプロジェクトで、大半をメイン開発者一人で開発しているようですが、既に一定以上の完成度です。また、内部的にはPHPファイルを解釈して直接Javaバイトコードにコンパイルしており、かなり高速なPHP処理系になっています。 他のPHP処理系と異なり、既存のPHPコードをWebサーバ上で動かすことを重視していないようにも見えますが、興味深いプロジェクトですので紹介します。 JPHPを動かしてみる さっそくJPHPを試してみましょう。現時点ではGitHubからソースコードを持ってきてビルドする必要があります。JDK7以上が必要ですので注意してください。JPHPのドキュメント「Getting Started」の通り、次のようにしてJPHPがビルドできます。 $ git clone https://githu

    Javaで書かれたPHP処理系のJPHPが高速だった - hnwの日記
    tsuwatch
    tsuwatch 2015/01/18
    なるほど
  • PHP のトレイトに気をつける - tototoshi の日記

    普段 Scala でトレイトを使いまくってるけれども PHP にも 5.4 からトレイトが入った。 trait の良いところは多重継承のできない言語で多重継承っぽいことができることだ。 use, use とつけていけば、いくらでも追加できる。DRY に書けてよいことだ。 対して悪いところはいとも簡単に複雑で暗黙的な依存関係が生まれることだ。 例えばこんなの <?php trait Greeting { public function say() { if ($this->location == 'ja') { echo 'こんにちは' . PHP_EOL; } else { echo 'Hello' . PHP_EOL; } } } class Location { } class US extends Location { use Greeting; private $location

    PHP のトレイトに気をつける - tototoshi の日記
    tsuwatch
    tsuwatch 2015/01/16
    型大事だった
  • PHP処理系の未来 | gihyo.jp

    PHPユーザーの皆様、あけましておめでとうございます。稿ではPHPとHHVMの2つのPHP処理系について紹介します。今後のPHPのトレンドを占うのにお役立ていただければ幸いです。 PHPの現在 稿執筆時のPHPの最新バージョンは5.6.4です。最近のPHPはマイナーバージョンアップを1年ごとに繰り返すスタイルになっており、PHP 5.6.0はPHP 5.5.0から14ヶ月後の2014年8月にリリースされました。PHP 5.6ではphpdbgという新デバッガが同梱されるようになるなど注目点もありましたが、過去のバージョンアップに比べると変化が小さいバージョンアップでした。 ところで、PHPの次のバージョンアップではメジャーバージョンアップを予定しており、バージョン番号としては7.0となります。メジャーバージョンが5から7へと一気にジャンプするのは珍しい現象ですが、過去に開発中止となったP

    PHP処理系の未来 | gihyo.jp
    tsuwatch
    tsuwatch 2015/01/02
    ほほー
  • 3v4l.org - online PHP shell with 250+ PHP versions

    Welcome to the best online PHP shell3v4l.org (leetspeak for eval) is an online shell that allows you to run your code on my server. I compiled more than 250 different PHP versions (every version released since 4.3.0) for you to run online. For every script you submit, this site tells you: Output from all released, plus upcoming alpha/beta/RC PHP versionsPerformance (time and memory) of every versi

    3v4l.org - online PHP shell with 250+ PHP versions
  • PHPを高速化するRecki-CTとは一体何なのか - hnwの日記

    @ircmaxellさん作の「Recki-CT」を試してみたので紹介します。作者によるブログ記事「ircmaxell's blog: Introducing Recki-CT」によれば処理によってはHHVMやHippy VMより速いらしいのですが、この記事だけでは詳細がよくわからずモヤモヤしていました。今回ソースコードまで確認してみて、前作のPHPPHPを超える変態作品だとわかりました(参照:「PHPPHPがド変態であることに今さら気づいた」)。 Recki-CTを試してみる Recki-CTの概要を説明すると、既存のPHP関数に型情報のアノテーションを記述して呼び出し方を少し変えることで、その関数をJITコンパイルしてネイティブコードとして実行するPHPライブラリです。JITコンパイルにはlibjitPHPバインディングであるJIT-Fuを利用しています。 では、さっそく試してみましょ

    PHPを高速化するRecki-CTとは一体何なのか - hnwの日記
    tsuwatch
    tsuwatch 2014/12/31
    へ、へんたいだー
  • PHPの今とこれから2014

    Webアプリケーション構築用スクリプト言語として進化し続けるPHPの今とこれからについて講演します。この一年、PHP 5.6リリースを始め、PHPの進化系とも言えるHack/HHVMの公開など、PHPには様々な話題がありました。PHPNGとしてアナウンスされた次期メジャーバージョンアップPHP 7.0の話題等、今後の方向と課題についてもとりあげます。Read less

    PHPの今とこれから2014
  • PHP7はなぜ速いのか

    PHPerがgolangでもがいてる話 -- Gopherくん The Go gopher was designed by Renee French. The gopher stickers was made by Takuya Ueda. Licensed under the Creative Commons 3.0 Attributions license.

    PHP7はなぜ速いのか
  • PHPPHPがド変態であることに今さら気づいた - hnwの日記

    Anthony Ferraraさん(@ircmaxell)が2012年12月に公開したPHPで記述されたPHP実装「PHPPHP」について、今さらですが調べてみました。 @ircmaxellさんはPHPの内部構造についての解説サイト「PHP Internals Book」の筆者の一人であり、PHP 5.5で導入された新しいパスワードハッシュ関数の提案・実装者でもあります(参照:https://wiki.php.net/rfc/password_hash)。最近発表した「Recki-CT」も興味深いプロダクトです。 そんなわけでジョークレベルではないだろうとは思ってましたが、今回中身を見てみたらガチすぎて恐怖しました。どういうモチベーションでこんなもん作る気になるんだ…。 PHPPHPの挙動はおおよそ次のようなものです。 PHPソースコードを受け取って構文解析して抽象構文木(AST)を作る

    PHPPHPがド変態であることに今さら気づいた - hnwの日記
    tsuwatch
    tsuwatch 2014/12/23
    あー良さ
  • Table Of Contents — PHP Internals Book

    The repository for this book is available on GitHub. The PHP internals book is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

  • PHP の mbstring に関するメモ

    このページについての説明・注意など PHP の mbstring 拡張モジュールについて調べてみました。mbstring 拡張モジュールは、PHP マニュアル : マルチバイト文字列関数 (mbstring) にも書かれていない機能や制約が多くあります。そのあたりをソースコードを確認しながらまとめてみました。 更新内容については、更新履歴を参照してください。 ソースコードの確認は主に PHP 5.2.5 〜 PHP 5.3.0 で行いました。PHP 4.x に対する記述もありますが、細かいバージョン等については十分に確認できていないものもあります。このページを読んで、間違い、誤字、脱字などがを見つけましたら、はてなの日記、または、メールなどで教えてください。 mbstring を使用する方法 静的ライブラリとして組み込む方法 共有ライブラリとして使用する方法 Windows 環境の場合 P

  • PHP7はなぜ速いのか(zval編) - hnwの日記

    この記事はPHP Advent Calendar 2014の7日目です。 僕は先日のPHPカンファレンス2014でPHP7に関するLTをしました(参照:「PHPNGの動向」)。ただ、時間が限られていたこともあり、あまり踏み込んだ内容には触れませんでした。 稿ではLTの内容から深掘りし、zvalという内部的な構造体がどう変わるのか、性能面のメリットにフォーカスして解説してみます。 PHPをとりまく状況 まず最近のPHPの話題をおさらいしておきましょう。 これまでPHPには実用レベルの別実装が存在しない状態が続いていましたが、HHVMの登場で状況が変わってきました。HHVMはFacebookが開発しているPHP実行環境で、PHPより高速で互換性も高いのが特徴です。Facebookで実際に利用されているだけでなく、他の企業でも商用サービスで利用する事例が増えてきています。 そんな中、2014年

    PHP7はなぜ速いのか(zval編) - hnwの日記
  • Composer を倍速にした、たった 1 行のコード

    まだ 12 月早々ですが、PHP ユーザに素敵なクリスマスプレゼントが届きました。 いまや使うのが当たり前となった Composer ですが、複雑な依存解決に実行時間がかかるのがネックでした。 これは日国内だけでなく、海外のユーザも同じで、皆がしょうがないと思いつつも、小さな不満を持ちながら使っていました。 そんな、ある�日、わずか 1 行のコードが追加されたことで、実行時間が、わずか半分になるという現象が起こりました。 Composer を倍速にするには? composer self-update を実行して、最新版にするだけです。 $ composer self-update 実際の効果 このコードの効果を見てみましょう。composer コマンドの --profile オプションを使って、実行時間と使用メモリ量を出力します。 $ composer update --dry-run

  • PHP: ガベージコレクション - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

  • PHPカンファレンス2014でHHVM/Hackの話を聞いて感動した - As a Futurist...

    使える言語の幅を広げたいと思ってPHP カンファレンス 2014に参加してきました。徳丸さんの「安全な PHP アプリケーションの作り方 2014」は改めて自分のセキュリティの知識を確かめるのに大変有意義だったのですが、何より感動したのが Facebook の Paul Tarjan による「HHVM + Hack == PHP++」のセッションでした。 すごく簡単に僕が理解した限りで HHVM/Hack を紹介すると、HHVM とは PHP の処理系の一つの実装です。その特徴は JIT コンパイルにより超高速になっていることに加え、圧倒的な魅力は PHP の Extension(C 拡張ライブラリ)の多くが実装されていて PHP のメジャーなフレームワークが問題なく動作するということです。つまりもう実践で戦えるということ。そして、Hack というのは HHVM が処理できるもう一つの言語

    PHPカンファレンス2014でHHVM/Hackの話を聞いて感動した - As a Futurist...