タグ

php 5.4に関するuechocoのブックマーク (8)

  • PHP5.4時代のprivateメソッドテスト手法 #php5_4

    PHP5.4 Advent Calendar 2011の7日目です。昨日は@madapajaさんの「PHP5.4+ で開発が行われている BEAR.Sunday フレームワークを動かしてみる」でした。 さてさて皆さん、ユニットテストしてますか? PHPもテストのライブラリが充実してきており、カバレッジ100%に情熱を燃やしている方も多いことでしょう。 ユニットテストで困るのが、private/protectedメソッドです。外から呼べないので、普通の方法ではテストできません。(protectedは適当なダミーのサブクラスを作ってそこからテストできますが、ちょっと面倒です。) まあ当然です。外から呼べないようにprivateにしているので、簡単に呼べたら逆に困るわけです。しかしながら、privateメソッドも外から呼んでテストできた方が開発ははかどるでしょう。この記事ではPHPでprivat

    PHP5.4時代のprivateメソッドテスト手法 #php5_4
    uechoco
    uechoco 2011/12/15
    Clodure::bind
  • PHP 5.4.0 Alpha3 でこういうコードが書けるようになる - なんたらノート第三期ベータ

    何も言いません、これ見て驚いたらいいですよ。PHP5.4.0 Aplpha3 で実際に実行できたプログラムです。もう大興奮ですよ。 Pythonだともっといろいろ書けるよ、とか、Rubyはmixin最初からあるよとか、その変数スコープJSだと当たり前すぎるとか、そういうツッコミはノーサンキューで、PHPでこれが動くということが重要なんですってば。

    PHP 5.4.0 Alpha3 でこういうコードが書けるようになる - なんたらノート第三期ベータ
  • 現状のPHP環境はそのままで、PHP 5.4 を試す

    現状のPHPはそのままで、新しい(別の)バージョンをPHP試す方法です。 PHP 5.4.0 alpha がリリースされました。Traits や Array dereferencing support など試してみたいですけど、さすがにメインのPHP環境を変えるのは早いですね。 そこで新しいPHPをビルドして、インストールはしない方法で試してみました。 PHP 5.4.0 alpha をビルド qa.php.netから、PHPのソースをダウンロードします。 $ wget http://downloads.php.net/stas/php-5.4.0alpha1.tar.bz2 展開して、configureして、makeします。とりあえずコンパイルオプションはナシで。 $ tar jxvf php-5.4.0alpha1.tar.bz2 $ cd php-5.4.0alpha1 $ ./co

  • PHP5.4とScalaのトレイト比較 - なんたらノート第三期ベータ

    PHP5.4にはトレイトという文法が導入されて、多重継承の便利さが享受できるようになるそうです。 いろいろ試してみることにしました。 トレイトといえば代表選手はScalaですね。Scalaでいうトレイトは、インターフェースの定義とメソッドの実装を同時にやってくれる便利な概念でした。単一継承のOOP言語では「〜は〜の一種」という制約が強すぎて、「ペンギンは鳥の飛行メソッドによって飛行できてしまう」という問題があります。でもちゃんと「ペンギンは飛べないが泳げる鳥」を綺麗に解決する必要はあって、その解答として、トレイトのあるScalaではこんな解が導けます。 abstract class Animal abstract class Bird extends Animal { def hasBeak = true // 鳥にはかならずクチバシがある def hasWings = true // 翼

    PHP5.4とScalaのトレイト比較 - なんたらノート第三期ベータ
  • PHP5.4のtraitを使ったシングルトンパターン実装によるtrait入門 - id:anatooのブログ

    PHP5.4 alpha1がリリースされた。このリリースでは、PHPのオブジェクト指向言語の新たな機能としてtraitと呼ばれる機能が追加された。PHP5.4におけるtraitとは、型に影響を与えずにクラスに適用できるメソッドとプロパティの集合である。 早速PHP5.4 alpha1をインストールし、traitを使ってシングルトンパターンを実装した。このコードでは、クラスの継承関係に影響を与えずにシングルトンパターンをモジュール化している。 <?php trait Singleton { protected function __construct() { } static function getInstance() { static $obj = null; return $obj ?: $obj = new static; } function __clone() { throw n

    PHP5.4のtraitを使ったシングルトンパターン実装によるtrait入門 - id:anatooのブログ
  • PHP5.4のtraitの使い道: クラス書く必要がないときはtrait書けばいいと思う - id:anatooのブログ

    何かの処理を共通化するために抽象クラス書いて継承させるというのはよくやるやり方だけど、抽象クラスを継承させるのはtraitに比べて制限が大きい。というのも、クラスはひとつしか継承できないが、traitは何個でもクラスに適用できるからで、わざわざ制限の大きいほうを選ぶ理由が無ければtrait使えばいいよという話。これはクラスを継承させるよりもインターフェイス使ったほうがいいよーと言われる話と似ている。これもインターフェイスはクラスの継承と違っていくつもクラスに適用できるため。 PHP5.4から導入される予定のtraitってなんぞという人は、PHP5.4のtraitを使ったシングルトンパターン実装によるtrait入門 - id:anatooのブログを参照する。 どうしても抽象クラスを作って継承させたいという場合も、まずインターフェイスを定義してその抽象クラスがそのインターフェイスを実装したほう

    PHP5.4のtraitの使い道: クラス書く必要がないときはtrait書けばいいと思う - id:anatooのブログ
  • 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からの新機能を見わたす
  • PHP5.4のリポジトリに新たに[]による配列の文法が追加 - id:anatooのブログ

    今までPHPでは配列を書くのにarray()という記法を使う必要があったが、PHP5.4のリポジトリに新しい配列の文法が追加された。[]で囲むことで配列を表現することができるようになっている。連想配列についても同様。 add short array syntax as defined in https://wiki.php.net/rfc/shortsyntaxforarrays, 2nd solution using => only http://svn.php.net/viewvc?view=revision&revision=313641 以下、配列の新しい文法に関するテストケースを引用。 --TEST-- Testing array shortcut and bracket operator --FILE-- <?php $a = [1, 2, 3, 4, 5]; print_r(

  • 1