Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
PHPは5.3から名前空間が導入され、名前の衝突を避けるため長いクラス名をつけることから解放されました。しかしながら、名前空間を使ったコードは、名前空間を使っていないものに比べて本当に読みやすくなっているのでしょうか? ここで例を挙げます。PHPの良質なソースコードと言えば、私はZend Framework(ZF)やSymfonyを思い浮かべるのですが、ZFのとあるクラスの冒頭を見てみましょう。 https://github.com/zendframework/zf2/blob/master/library/Zend/Mvc/View/Console/RouteNotFoundStrategy.php <?php /** * Zend Framework (http://framework.zend.com/) * * @link http://github.com/zendframewo
2ヶ月くらい使ってみたけど、悪くはないんだけど、なんか最近持ち上げられすぎてる気がするので、気になったところを書き出してみる。 あくまで個人的な感想なので、マサカリ投げるのは歓迎。 概要 Noticeを含むエラーが全て例外になる 最近のフレームワークは大体やってそうだけど、エラーを出すと全て例外を出すので、不要にcatchしなければ問答無用で落ちる。これにより、NOTICE出しっぱなしで何となく動いているコードを殲滅できる。標準にしてほしい。Fatalも例外として扱ってくれるが、Fatalを取れるのはプログラム終了後なので、特に意味はない。出力が同一フォーマットになるくらい。 ちなみに自前で実装するにはErrorExceptionのページに書いてあるので、この通り実装しよう。簡単である。 ファイルの配置が自由 composer autoload使っていればどれでもそうなんだけど、Model
PHP で動的にクラス名を指定する場合、現在いる名前空間が修飾されないため、 クラス名のみで名前空間内のクラスを指定して new するとクラスを見つけられず致命的なエラーになります。 エラーになる例 クラスファイルのパス構成 例えば PSR-0 規約に準拠して以下のような構成で Car クラスと CarCreator クラスを配置していたとします。 /var/www/sample/Vendor/SampleVendor/Entity Car.php CarCreator.php Car.php SampleVendor\Entity の名前空間に Car クラスを定義します。 <?php namespace SampleVendor\Entity class Car {} CarCreator.php この状態で Car クラスと同じ名前空間の CarCreator クラスから Car ク
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
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く