タグ

PHPに関するrti7743のブックマーク (86)

  • PHP 5.5 でジェネレータが導入される

    PHP 5.5 でジェネレータが導入されることになりました。 PHP においてジェネレータは Iterator インターフェイスを実装するクラスで次のメソッドが定義されています。 final class Generator implements Iterator { void rewind(); bool valid(); mixed current(); mixed key(); void next(); mixed send(mixed $value); } 関数やメソッド定義のなかの yield 文で指定した式は foreach ループで展開されます。これによって Iterator インターフェイスを実装するクラスを用意しなくても、上記のイテレータのメソッドを利用したり、AppendIterator や MultipleIterator を使って複数のジェネレータをまとめるなど、イテ

    PHP 5.5 でジェネレータが導入される
    rti7743
    rti7743 2012/09/03
  • php.js - PHP VM with JavaScript

    This library reads PHP code and transforms it into JavaScript code which can be run in the PHP VM in this library, resulting in same results as with PHP. It starts by tokenizing the PHP code into tokens, which it then uses to build an AST tree. Once the tree has been constructed, the script compiles it into JavaScript that can be interpreted by the VM and then executes it. Any additional unconvert

    rti7743
    rti7743 2012/07/25
    よく使ったもんだ
  • 第二回闇PHP勉強会に参加してきた - たきゃはしです

    まさに闇(画像は勝手なイメージです) 第二回闇PHP勉強会 同僚の id:anatoo に誘われて参加を決意。 当日は二日酔いグロッキー状態で雨に打たれながら出席。(会場はアシアルだったので近かった! スピーカーの準備も出来たところで部屋の明かりをシャットダウン 闇の勉強会がはじまる 私が面白かった〜と感じた「hiphop phpPHPからジェネレートされたC++コードを読んでみよう(仮) 60分 @super_rtiさん」について書きます! そもそもhiphop phpは何か? これはFacebookがパフォーマンス向上を目的に開発した「PHPC++にしちゃうぞ〜」的な魔改造もいいところなコンバータです。(コンパイラではない PHPにあった変数や配列はもちろん、関数やクラスなどをどのように表現したか、順序良く進めていきました。 「echo 'hello world';」はこんな感じ

    第二回闇PHP勉強会に参加してきた - たきゃはしです
    rti7743
    rti7743 2012/06/26
    ロゴかっこよすw
  • PHPでもリアルタイムWeb。node.php·React MOONGIFT

    node.jsの魅力はノンブロッキングシステムにあります。そんなnode.jsの魅力をPHPで実現するソフトウェアがReactです。 サンプルコードです。読み込むたびに数字が繰り上がります。 同時に二つのファイルをダウンロードするデモです。パラレルで処理されています。 サーバを実行しているところです。 読み込むと数値が繰り上がっていきます。 ReactではApacheなどを使うのではなく、独自のWebサーバを立ち上げて実行します。また、そのままPHPを使うというよりはReactのライブラリでラッピングしながら作っていく形になります。そのため専用の作法を覚える必要がありそうですが、使い慣れたPHPを使ってノンブロッキングシステムを実現できるというのは魅力的かも知れません。 ReactPHP製、MIT Licenseのオープンソース・ソフトウェアです。 MOONGIFTはこう見る node.

    PHPでもリアルタイムWeb。node.php·React MOONGIFT
    rti7743
    rti7743 2012/05/31
  • PHPのyaccを作ったよ - ベイエリア情報局

    元Vine SPARC開発者。2003年度未踏ユース採択者。ウノウ株式会社立ち上げ時に参画して4年間CTOとして従事。退職して現在P&Aラボにて客員起業家として起業準備中。 yukobaさんがkmyaccをpythonに対応させたというので、僕も頑張ってPHPに対応させてみました。 他の言語のテンプレートを参考にしながら作ったら当にできたよ。\(^o^)/ kmyaccの言語依存部分の切り離し具合は当にすごい!! yukobaさんがpythonに対応させたものにパッチをあてました。 パッチとパッチをあてたものを公開しておくので、お好きな方をダウンロードしてコンパイルして使ってみてください。 kmyacc-4.1.4-php-patch kmyacc-4.1.4-php.tar.bz2 なんでこんなことやってるかというと、無謀にもPHPでHaskell Hackathonに参加しようとし

  • 第1回 PHPでアセンブラを作ってみた | gihyo.jp

    最近、FPGAなどを使ってCPUを自作する記事を目にするようになりました。CPUの命令コードは数字ですから、アセンブラソースを1行1行手で命令コードに変換していく(ハンドアセンブルする)ことになります。昔は、このためにコーディング用紙というものが売っていました。 最近のPICなどのマイコンには開発環境が用意されており、アセンブラなど必要な道具はすべて入っています。ですから、用意されているアセンブラを使うことがあっても、アセンブラを自分で作るという機会はなかなかないと思います。ここでは、アセンブラを作ってみることにしましょう。 PHPでアセンブラを作る アセンブラをどの言語で作るかですが、今回もPHPを使ってみました。フォーム上にソースを入力すると、バイナリが出力されます。対応しているのはPIC16Fの命令セットで、今回のアセンブラプログラムを使って開発環境で作ったものとまったく同じバイナリ

    第1回 PHPでアセンブラを作ってみた | gihyo.jp
  • PHP: PHP 5.4.0 Release Announcement

    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: PHP 5.4.0 Release Announcement
    rti7743
    rti7743 2012/03/02
  • PHPのJITコンパイラ「HipHop Virtual Machine」、Facebookがオープンソースで公開

    PHPのJITコンパイラ「HipHop Virtual Machine」、Facebookがオープンソースで公開 HipHop Virtual Machineは、PHPを高速に実行するためにPHPのコードをC/C++に変換してg++でコンパイルし、バイナリコードにするHiphop compiler(hphpc)と、PHPのインタプリタであるHipHop interpreter (hphpi)を組み合わせたもの。PHPのコードをダイナミックにバイナリコードへと変換することで、高速な実行を目指しています。 コンパイラと同等以上の実行速度へ HipHopはFacebookが開発し、オープンソースとして公開しています。今回のHipHop Virtual Machineも、これらの開発の延長線上にあるものです。 Our experiences with hphpc led us to start e

    PHPのJITコンパイラ「HipHop Virtual Machine」、Facebookがオープンソースで公開
  • PHPのさらなる利用者増を目指し再定義する·PHP.reboot MOONGIFT

    PHP.rebootはJVM上で動作するPHPを再定義したプログラミング言語です。 PHPは恐らくWebサイトにおいて最も良く使われている言語でしょう。習得も容易で、手軽に色々なWebアプリケーションが作れる、そんな利便性の裏で言語仕様などについて毛嫌いされる声も聞かれます。そこで注目したいのがPHPを再定義するPHP.rebootです。 PHP.rebootの書き方です。< ?phpではなく、{}を使ってコードを埋め込みます。まさにテンプレート的です。ファイルの拡張子はphprになります。 実行結果はもちろん普通に表示されます。 サーバ、GET/POSTも使えます。面白いのは変数名に$をつけず、JavaScriptのように定義することでしょう。;も使いません。 実行結果はこのようになります。 基的な文法はPHPと似ています。SQLとの親和性を高くしており、コードの中にSQLをそのまま埋

    rti7743
    rti7743 2011/10/19
    こういうアプローチは面白い。もっと面白い言語が生まれて行って、プログラムが書きやすく進化するといいな。
  • PHPでネイティブ関数を含むコードのテスタビリティを上げる2つの方法 - 絶品ゆどうふのタレ

    PHPでテストケースを作成する場合、ネイティブ関数を使っているようなコードに対してテストを実行しようとすると、どうしても環境に依存したり、実リソースにアクセスする必要が出てしまうことがあります。 この記事では、そのような問題に対する対処法を提示します。 経緯みたいなもの 先日もWeb APIをコールするPHPライブラリを書いていたのですが、HTTPをたたく部分のテストを切り離せず、もやもやしていました。 ちょっと前にPerlのTest::Timeというライブラリを教わって感動していたのですが、PHPでもネイティブ関数をオーバーライドできたらどんなにすばらしいだろう、などとぼやいていたのです。 そんなときに、@takimoにPHP 5.3ならオーバーライドできるよねって言われて、ハッと思い立ってテストに組み込む方法を考えてみたところ、割とスマートに実現できそうな方法が見つかったので、方法論の

    PHPでネイティブ関数を含むコードのテスタビリティを上げる2つの方法 - 絶品ゆどうふのタレ
  • チューニンガソンで優勝してきました : DSAS開発者の部屋

    7/9(土)にチューニンガソン というイベントに参加して優勝してきたので、その報告と、何を考えてどんなチューニングをしたのかを 記憶の範囲で公開したいと思います。 今回のチューニンガソンのお題は、WordPress(ja) + php + Apache + MySQL で、 ab を使って wp-comment.php 経由でコメントのポストをすることで計測が行われました。 MySQLとApacheを立ち上げたらWordPressが動く環境が渡され、そのWordPress自体は設定ファイルを含めて 改造が一切禁止、WordPressの実行をショートカットするチートも禁止です。 0. 試合前日 環境がAWSとAMI Linuxということは事前に公開されていたため、前日にAWSに登録して少しだけAMI Linuxを 触ってみました。yumベースだけどCentOSと違って結構新しいバージョンが用

    チューニンガソンで優勝してきました : DSAS開発者の部屋
  • PHP5.4 alpha1リリース! PHP5.3からの新機能を見わたす

    こんにちは、久保田です。 先月6月28日、PHP5.4 alpha1がリリースされました。PHP5.3では、名前空間や無名関数の追加など、言語機能に大きな追加が行われました。PHP5.4 alpha1 ではtraitが実装され、オブジェクト指向言語としてのPHPに大きな機能追加が行われました。他にも、<?=記法のデフォルト有効化、array dereferenceの追加、無名関数内の$thisの扱いの変化、JsonSerializableインターフェイスの追加など筆記すべき様々な機能追加、改善が見られます。この記事ではPHP5.4 alpha1で見えてきた新機能をサンプルコードを交えながら概観します。 とりあえずNEWSを訳す PHP5.4 alpha1の変更点を記述した NEWS ファイルを翻訳してみたのが以下です。 <?php trait A { protected $hoge = "

    PHP5.4 alpha1リリース! PHP5.3からの新機能を見わたす
    rti7743
    rti7743 2011/07/14
  • PHPを使う上で、どう書けば高速になるか?をその場で試せるベンチマーク結果満載なサイト:phpspot開発日誌

    PHPを使う上で、どう書けば高速になるか?をその場で試せるベンチマーク結果満載なサイト 2011年05月23日- Benchmarks PHPを使う上で、どう書けば高速になるか?をその場で試せるベンチマーク結果満載なサイトがあるようです。 同じことをやるのに複数の書き方があったりしますが、2つの書き方を並べてそれぞれどちらがどれだけかかったかという結果が記載されていて面白いです。 で、そのいくらかかったか?という秒数も、ページ上でリアルタイムに計算され、リロードすると実行され、実行タイムが表示されます。 サイトの作者環境による比較ではなく、その場で動いて何度も試せるので自分でその差を確認できるのがGood。 個人的には長年PHPをやっているのですが知らなかった物も多々あり、非常に勉強になりました。 1回のロードでは結果が変になることもあるので、サーバの負荷にならない程度に数回確認させてもら

  • TechCrunch | Startup and Technology News

    What’s one to do after creating a billion-dollar startup? Well, if you’re Rubrik co-founder Arvind Jain, you simply start another one.  Jain co-founded Glean, an…

    TechCrunch | Startup and Technology News
    rti7743
    rti7743 2011/05/17
    beta申請したのにずっと放置されて、ごめん忘れてたよってメールが届いてw、その頃にはいろいろ忙しくなっていたから放置して一度も使っていないなw 使い勝手とか価格とかどうなんだろう。
  • モテる PHP 女子力を磨くための4つの心得 - Memo

    こんにちは PHP 恋愛マネジメントを専攻している heavenshell です。私は学歴も知識もありませんしただの PHPer ですが、PHP 恋愛に関してはプロフェッショナル。 今回は、モテる PHP 女子力を磨くための 4 つの心得を皆さんにお教えしたいと思います。 1.あえて 2〜3 世代前の PHP を使う あえて 2〜3 世代前の PHP を使うようにしましょう。そして好みの PHP 男子がいたら話しかけ、わざとらしくPHP を出していじってみましょう。 そして「あ〜ん!この言語当にマジでチョームカつくんですけどぉぉお〜!」と言って、PHP 男子に「どうしたの? safe_mode ちゃんと off になってる?」と言わせましょう。 言わせたらもう大成功。 「PHP とか詳しくなくてぇ〜! ずっとコレ使ってるんですけどぉ〜! 使いにくいんですぅ〜! ぷんぷくり〜ん(怒)」と言

    モテる PHP 女子力を磨くための4つの心得 - Memo
  • さあ、AWSをはじめよう! for PHPer

    春ということで、Amazon Web Services(AWS)をはじめてみませんか。 AWS盛り上がっていますね。2011年3月に東京リージョンができたことで、そろそろ触ってみようかなというPHPユーザの方も多いかと思います。 そんなあなたへ、AWSをはじめる際に役立つ情報をご紹介です。 1. AWSアカウントを新規作成して、EC2の利用申し込みを行う まずAWSのアカウントを作成して、EC2の利用申し込みを行います。 手順については、AWSエバンジェリストの @KenTamagawa さんが書かれた以下の資料が参考になります。このとおりに進めていけば、おおよそ問題無いと思います。 進める中で自分が詰まった点は以下。 郵便番号、電話番号にはハイフンを 郵便番号、電話番号はハイフンが必要なので入力するようにして下さい。 書式は日国内のもの、郵便番号8ケタ(ハイフン入り)、電話番号は12〜

  • php_mecab-0.3.0: 某所より引っ越し - 讃容日記

    php_mecab-0.3.0.tgz PHP 5.3/6.0に対応。 PHP6のUnicode文字列とC文字列の相互変換をするエンコーディングを指定するためのphp.iniディレクティブmecab.internal_encodingを追加。 指定できる値はICUが対応しているエンコーディング名で、デフォルト値はUTF-8PHPスクリプト内ではini_set()のほか、mecab_set_encoding()関数やMeCab::setEncoding()メソッドで指定可能。 ini_get(), mecab_get_encoding(), MeCab::getEncoding()で現在の値を取得することもできる。

    php_mecab-0.3.0: 某所より引っ越し - 讃容日記
  • CakePHP開発者が知るべき10のこと

    先日、こんな記事が上がっていました。 Android開発者が知るべき10のこと この記事でまとまっているのは、Android開発において必要な10の項目です。 インターフェースの設計から、データの取り扱いまで。 AndroidはモバイルデバイスのOSで、CakePHPは単なるWebフレームワーク。 しかし、予め用意されたルールやAPIを活用する点は同じです。 つまり、フレームワーク全般において、開発者が知るべきことをまとめることが出来るはずです。 ここでは、私が良く利用するCakePHPフレームワークについて、開発者が知るべき10のことをまとめます。 1. CakePHPで良いのか CakePHPを使う際に、知るべきことその1。 それは、あなたは当にCakePHPを使うべきなのかということです。 現在、あらゆるフレームワークが溢れ返っています。 Ruby Ruby On Rail

  • 第5回 PHP 5.3の変更点(その1) | gihyo.jp

    個人的な事情により前回の掲載から大変長い間が空いてしまいました。読者の皆様にはこの場を借りてお詫びいたします。 この2年と9ヶ月(!!)の間にPHPに起こった最も大きな出来事といえば、何といってもクロージャ等、待望の新機能が追加されたPHP 5.3の登場でしょう。連載の再開にあたり、まずは筆者が実際の拡張モジュール開発で直面したPHP 5.3の変更点について書かせていただきます。 PHP 5.3での変更点 PHP 5.3でのZend Engineの変更のうち、拡張モジュール開発に影響しそうなものを以下にざっと挙げてみました。 参照カウンタを操作するAPIの変更 いくつかの関数/マクロ定義の変更 名前空間つきクラス/関数/定数のためのマクロ追加 名前解決のためのAPI追加 エラーハンドリング周りの強化 いくつかのAPIが非推奨に また、そのほかにも 遅延静的束縛(Late Static B

    第5回 PHP 5.3の変更点(その1) | gihyo.jp
    rti7743
    rti7743 2011/03/09
    mecabプラグインをビルド中に互換エラーがでたので。
  • ZendEngine勉強会@東京

    #zendengine hash に発言している方々から辿れた関係ありそうな発言をまとめて重複分を取り除く形でまとめを作成しました。

    ZendEngine勉強会@東京
    rti7743
    rti7743 2011/02/17
    お疲れさまでした