Laravelのマニュアルにない?小技: Eloquentのboot時にtraitのbootを別に走らせるPHPtraitLaravel こんにちはみなさん Laravelを半年以上使い続けてきたのですが、不気味なほどよくできているというか、「こんなんできないかなぁ」とか思うと、大体Laravelで完結できちゃったりします。 一方で、マニュアルを漁っても出てこない機能とかあって、結局ソース読んだりLaracastを見に行ったりするわけです。 そんなわけで今回は、いろんな使いみちがありそうなのに、マニュアルに見当たらなかった、Eloquentに関する小技を紹介します。 (SoftDelete眺めてたら見つけました)
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 のまとめと実際の利用例 弊社技術ブログへお越しのみなさま、こんにちは。今年度入社の新人、 YamaYuski です。 先日、社内勉強会にて「traitを使って楽したい話」という演目で簡単に trait について発表しました。 trait が実装された PHP5.4 は2年も前にリリースされたものなので、何故今更、という話になると思います。 しかし、ネット上(特に日本語圏)においての trait の記事はまだまだ少なく、具体例を探すのも大変だったので、「もしかして trait はあまり浸透していないんじゃないか?」と考え、 trait の有用性を世に広めるためにこの記事を作り始めました。 今回は、初心者ながら個人的に調べたり考えたりしたことを、 trait とはなにか trait の実装方法と利用方法 どのようなケースで実装するか 実装時の小ネタ の4
この記事はPHP Advent Calendar 2013の8日目の記事です。本エントリではphp5.4の注目機能の1つであるtraitをどうやって扱うべきかを書いてみようと思います。 TraitとはTraitとは継承関係と関係なく実装を再利用できる仕組みのことです1。言い換えるならば、「多重継承」であったり「Mix-in」を可能にする仕組みと言えるでしょう。Rubyistの間ではMix-inの概念は当たり前のことでしょうが、PHP界隈ではTraitは新しい機能ということもあり浸透していない概念かと思います(Ruby以外にもTraitと似た機構はあるみたいですね2)。 本エントリではPHPerの間では未だ聞き慣れないであろうTraitの概念を実コードとともに紹介してみようと思います。 Traitの特徴Traitの簡単な特徴は以下の通りです。 PHP5.4以降必須Trait自身のインスタンス
PHP には「静的変数」 (static 変数) と呼ばれる言語仕様があります。概要は PHP マニュアルの以下のページ PHP: 変数のスコープ - Manual を参照してください。 マニュアルでは関数内で使った場合の例しか載っていなかったので、クラスメソッド・インスタンスメソッド・trait などに使用した場合にどうなるのか調べてみました。 結論は、簡単に言うと クラス毎に独立 インスタンス間で共通 となっています。 検証過程 関数で使用した場合 これは PHP マニュアルに載っている例と同じです。関数を呼び出すたびに $num が 1 ずつ増加します。(PHP 5.1.0 - 5.5.13 で確認) <?php function testFunc() { static $num = 0; $num++; echo __FUNCTION__ . $num . PHP_EOL; } t
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く