php

「PHP と SAPI と ZendEngine3 」についてを #phperkaigi で話してきたこと

php

概要 各種 PHP の実行環境 と PHP 内部の動きについて、 PHPerKaigi2018 前夜祭 で話してきました。 PHP と SAPI と ZendEngine3 と from do_aki 経緯とか PHPerKaigi2018 の存在を知ったのが 1/9 window.twttr = (function(d, s, id) { var js, fjs = d.get…

同じように見えて異なる PHP の文字列についての話

php

はじめに 本記事は PHP Advent Calendar 2017 18日目 です。先に断っておきます。 この記事の内容は、 php スクリプトを書く上で全く必要のない知識です。知ってすぐ何かに役立つような情報を求めていたらごめんなさい。 https://qiita.com/advent-calendar/…

再考:列挙型

php

はじめに php で列挙型と言えば、 @hiraku さんの http://qiita.com/Hiraku/items/71e385b56dcaa37629fe みたいな実装がほとんどかと思います。自分もだいたいこんな感じでいいかなと思っているのですが、2点ほどどうしても実現したいことがありました。1. I…

闇PHP勉強会 #yamiphp でASTとsignalについて話してきたこと

時間が開いてしまいましたが、先週 第七回闇PHP勉強化に参加し、トークしてきました。タイトルは「PHP AST 徹底解説(補遺)」および、「signal の話 或いは Zend Signals とは何か」です。前者は、過日 PHPカンファレンス2016 で発表した「PHP AST 徹底解説」…

PHPカンファレンス2016 #phpcon2016 で PHPのASTについて話してきたこと

php

概要 PHP7 で導入された AST(Abstract Syntax Tree) について、その概要と、導入によるPHPの変化を解説しました。 おまけでASTの利用法についても少し。AST の可視化は https://dooakitestapp.herokuapp.com/phpast/webapp/ にて試せます(動いてなかったらご…

生成される hash 値が php7 で少しだけ変わった件

この記事は 闇PHP Advent Calendar 2015 10日目 ですphp の連想配列で用いられているハッシュ関数は DJBX33A と呼ばれるものです。 実装は php5.6 までは Zend/zend_hash.h 、php7 からは Zend/zend_string.h に、どちらも zend_inline_hash_func という関数…

ext_skel の 雛形ファイルは php7 でどう変わったか

この記事は 闇PHP Advent Calendar 2015 9日目 です 先日の 闇PHP勉強会で、 ext_skel スクリプトで生成される雛形って、ほとんど更新されてないのでは 的な話をしたので、気になって調べてみました。上は php-5.6.16 と php-7.0.0 の skelton.c の diff で…

pcntl 拡張と signal

この記事は 闇PHP Advent Calendar 2015 5日目 です pcntl 拡張で signal を扱う php で signal を扱うためには pcntl 拡張を利用します。使い方は簡単で、pcntl_signal 関数で トラップしたいシグナル番号とコールバックされる関数(シグナルハンドラ)を登録…

ZEND_TICKS と tick 関数

この記事は 闇PHP Advent Calendar 2015 4日目 です tick について ZEND_TICKS とは、tick 不可能行*1の後に発行されるオペコードで、多くは、セミコロンで終わるステートメントごとに発行されます。ただし、デフォルトでは発行されず、利用するためには dec…

Casualに闇とBLTしてきました

2015/11/20 MySQL Casual Talks vol.8 2015/11/22 第六回闇PHP勉強会 2015/11/24 PHP BLT #1 意図せず、飛び石でトークすることになってました。 MySQL Casual Talks vol.8 N対1 レプリケーション + Optimizer Hint from do_aki いつものアレに対する近況報…

PHPカンファレンス2014 で「mysqlnd 徹底解説」を話してきたこと #phpcon2014

去る 2014/10/11。大田区産業プラザPiOにて PHPカンファレンス2014が開催されました。その中で、「mysqlnd 徹底解説」というタイトルでトークさせていただきました。 20141011 mastering mysqlnd from do_aki 雑感 思い返せば PHP カンファレンスで初LT をし…

闇PHP勉強会でphpのランダマイズについて話してきたこと

php

導入 "配列のランダマイズ、出来ますか?" を読み、php の場合はどうなの? と思ったので、調べてみましたというお話。結論としては、4.3.0 以降の php では等分散されます。ただ、疑似乱数生成器が libc 依存なため OS によって異なる結果となるので、異な…

第1回 PHP勉強会@相模原で、php 処理系の全体像について話してきました

php

@yoya さん主催のPHP勉強会@相模原 に参加し、トークしてきました。当初は SAPI 周りのことを入念に調べて、SAPI が何をするモノで、どのように動くのかを発表するつもりだったのですが、SAPI って実装ごとにかなり性格が違う。 結局、SAPI については処理の…

PHP 文字列リテラルにおける変数展開ノ全テ

php

はじめに 本記事は、PHP Advent Calendar 2013 18日目です。前日は @oasynnoum さんの http://oasynnoum.blogspot.jp/2013/12/raspberry-pi-php.html でした。ラズパイ x php ってあまり見ない組み合わせだったので、なかなかに新鮮でした。 さて、まず初め…

packagist に net-empty_port というモジュールを公開した話

php

packagist: https://packagist.org/packages/dooaki/net-empty_port github: https://github.com/do-aki/Net-EmptyPort net-empty_port とは 実行したマシンの空いてるポートを探し出してくれるモジュール。 https://metacpan.org/module/Net::EmptyPort に…

Excel は Editor ですか? いいえ、Image Viewer です。

だいぶ経ってしまったのだけど、 東京Ruby会議10 事後懇親会: Q で即興で LTしてきたもの。Excel 方眼紙って、目を細かくしたらドット絵になるよなぁと思って、画像から Excel ファイルを作るスクリプトを組みました。という話です。 こんな画像(png) が、こ…

RejectTokyoRubyKaigi10でrubyとphpの比較について話してきた

Ruby and comparison_and...php from do_aki スライドは、そのまま見てもあまりよく分からない(&自分が後から見ても何を意図したのか分からないと思う)ので、ここで補足しておく。補足というか、考えていたことをぐだぐだとただ書き並べただけなのだけど…

PHP 5.4 のバグレポ出したら30分で修正された話

php

Advent Calendar 22日目 scanner.l と parser.y の差分を解説してみる - do_akiの徒然想記 にもちょこっと書いたのですが、 php 5.4.0 RC4 において、 code.1 が Segmentation fault を引き起こしていました。 code.1 Segmentation fault with PHP5.4.0RC4

Advent Calendar 24日目 Xmas Tree on PHP

PHP 版作ってみた。https://github.com/do-aki/php-xmas-tree

Advent Calendar 22日目 scanner.l と parser.y の差分を解説してみる

この記事は、 PHP5.4 Advent Calendar 2011 (http://atnd.org/events/22473) 22日目です。 そして同時に do_aki Advent Calendar 2011 (http://atnd.org/events/22834) の 22日目でもあります ;-pPHP5.4 Advent Calendar 2011 の 21日目は [twitter:@kokkeku…

Advent Calendar 20日目 Jenkins の PHP コードカバレッジ推移グラフ

以前(11月の末頃)書いてて中途半端になってた記事を手直しして放出。Jenkins での PHP コードカバレッジ推移グラフの表示について。

Advent Calendar 19日目 Brainf*ck on PHP

PHP で Brainf*ck を実装してみました。以前 KQ 言語 (http://ideone.com/DDWfy) を見たときに、これって、 Brainf*ck の亜型だよなぁと思い、そう言えば Brainf*ck の実装したこと無かったことに気付いたので、さっくりと PHP で書いてみたモノです。 (な…

Advent Calendar 16日目 PHP コンパイラの実行を中止する方法

今回は、PHP コンパイラの実行を中止する方法 について。「それって、 exit とか die でしょ?」 と言われそうですが、ハズレ。exit や die は、スクリプトを終了させるものです。何が違うのか、実際に例を見てみましょう。

Advent Calendar 15日目 Perl/Ruby/Python 版 Native Driver ?

かじゅある! (挨拶)や、それはもういいか。昨日、 php の mysqlnd について書きましたが、id:nihen さんから、 【Perl や Ruby でも Native Driver 俺が書いてやんよっていう猛者がいたら面白い】Perl=DBD::mysqlPP, Ruby=>Ruby/MySQL, Python=>oursql ht…

Advent Calendar 14日目 MySQL と PHP の間を詳しく見てみる

かじゅある! (挨拶)本記事は、 MySQL Casual Advent Calendar 2011 (http://mysql-casual.org/2011/11/mysql-casual-advent-calendar-2011.html) 14日目です。 そして同時に do_aki Advent Calendar 2011 (http://atnd.org/events/22834) の 14日目でもあ…

Advent Calendar 9日目 たとえば、PEAR を信じない

PEAR 使ってますか?僕はあまり使ってません。とりわけシステムにインストールされる PEAR ライブラリはほとんど使っていません。便利なライブラリは確かにありますが、どうも依存が気になっちゃうのです。 ライブラリディレクトリ そこで良くやる手段が、実…

Advent Calendar 8日目 Zend Multibyte

この記事は、 PHP5.4 Advent Calendar 2011 (http://atnd.org/events/22473) 8日目です。 そして同時に do_aki Advent Calendar 2011 (http://atnd.org/events/22834) の 8日目でもあります ;-p PHP5.4 Advent Calendar 2011 の 7日目は [twitter:@Hiraku] …

Advent Calendar 6日目 php Session の中身を解説

do_aki Advent Calendar 2011 : ATND の 6日目です。 php には、標準でセッションを管理する機構があります*1。今回は(時間もネタもなくなってきたので)このセッションについて、処理系の実装を交えて解説します。 *1:言語組込ではなく、標準拡張モジュー…

Advent Calendar 5日目 php-fpm is stable?

php の SAPI (Server API) にはいくつか種類があり、 一般的には Apache , Apache 2.0 Handler および CLI がよく使われているのではないかと思います。現在実行している php が、どの SAPI で動いているのかを調べるには、 php_sapi_name 関数を使います。 …

Advent Calendar 3日目 5.3.3 のみ違う振る舞いをするphpの挙動について

以前、見つけてある程度書いたものの放置していた記事を放出。いちぉ、これ、技術系 Advent Calendar だったんですよ。 php 5.4 リポジトリに舞い戻ってきたクロージャの $this サポート - do_akiの徒然想記 、 php のソースコードを眺めていたときの雑多な…