タグ

ブックマーク / qiita.com/hnw (4)

  • PHP7調査(2)コンパイル時にASTを構築するようになった - Qiita

    PHP7から内部的にAST(抽象構文木)が実装されるよ!とのこと。反対票ゼロでPHP7への採用が決まっています。 構文解析とコンパイルの分離 PHPでは構文解析にYACCを利用しています。YACCでの構文解析は、概念的には構文木を辿るような処理なのですが、これまでのPHPでは実装として木構造を構築することはせず、構文解析をしながら即座にopcodeを作り出すような処理をしていました。 このようなつくりが原因で、これまでのPHPではYACCレベルの文法が冗長になったり、PHP文法に一見無意味な制約ができたりしていました。 PHP7からは一度ASTを作りあげてからopcodeの生成を行うため、パーサーや最適化の実装がシンプルになって保守性が上がったり、これまで技術的な理由で不可能だったスマートな文法が導入しやすくなると期待できます。 ソースコードを見たい方のために実装箇所も紹介しておきます。現

    PHP7調査(2)コンパイル時にASTを構築するようになった - Qiita
    b7968
    b7968 2017/07/09
  • PHP7調査(23)致命的エラーが例外としてキャッチできるようになった - Qiita

    (2015/07/02追記:PHP 7.0.0alpha2に合わせて修正しました) PHPのエラーは、エラー文言を表示するだけの警告・注意と、その場で処理を終了してしまう致命的エラー(fatal error)の2種類に大別できます。 ところで、PHP5の致命的エラーには不便な点があります。それは、set_error_handler()やその他の方法でエラーハンドリングできず、必ず終了してしまう点です。これでは致命的エラーをユニットテストするのも不便ですし、ReactPHPのようにサーバ動作させるようなプログラムも安心して使えません。 PHP7では致命的エラーが例外として実現されるようになり、エラーハンドリングの自由度が格段に上がりました。この変更の概要を紹介します。 例外のクラス階層の変更 まず、PHP7で例外クラスの階層がどう変わるかを説明します。PHP5までの例外のクラス階層は次のよう

    PHP7調査(23)致命的エラーが例外としてキャッチできるようになった - Qiita
  • opcodeダンプするのにvldもphpdbgも要らなくなってた - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    opcodeダンプするのにvldもphpdbgも要らなくなってた - Qiita
    b7968
    b7968 2017/04/19
  • Composer超入門 - Qiita

    Composerをこれから試そうと思っている人向けの文書です。 Composerって何? ComposerはPHPプロジェクトの依存ライブラリを根こそぎvendor/以下にダウンロードしてくれるツールです。 詳しくは http://getcomposer.org/ を参照のこと。家ドキュメントは超充実していますが、家に和訳が無いせいか日ではまだまだ普及段階といった印象です。 Composer用語のまとめ composer.json - そのプロジェクト自身の情報と、依存するライブラリ情報などを記述するJSON形式のファイル。これを元にComposerが仕事をする。 package - トップディレクトリにcomposer.jsonが含まれているVCSリポジトリまたはzipファイル。 Packagist - Composer用のpackage集約サイト。ここに登録されているpackag

    Composer超入門 - Qiita
  • 1