タグ

ブックマーク / blog.tojiru.net (5)

  • PHPのinterfaceとは何か

    久しぶりの更新です。最近、修行だと思って色々なを読み漁っているのですが、やっとこさPHPのinterfaceが分かるようになってきた感じがあるので、まとめてみます。 インターフェースは、クラスから"ユーザー定義型"の能力のみを分離した言語機構です。PHPのそれはJavaのinterfaceのパクリです。 "ユーザー定義型"という単語を使いました。動的型付き言語のことを「型のない言語」と言う人がたまにいるんですが、とんでもねー間違いです。PHPにだって型はあります。変数が型を持たず、値が型を持っているというだけの話です。 interfaceを宣言する文法はクラスとよく似ていますが、キーワードclassの代わりにキーワードinterfaceを使います。中身は定義のないメソッドの宣言を書きます。なお、定数も含めることが可能です。 <?php interface FooInterface { c

    PHPのinterfaceとは何か
    ryster
    ryster 2013/10/16
  • PSR-0はなぜ0(≒最重要)なのか

    Symfony勉強会で酔った勢いでPSRのステマをLT枠でしてきたのですが、参加者の半数以上がPSRを知っているというSymfony勉強会のレベルの高さに完全にやる気を失い、気のない話しかできなかったことをまずはお詫び申し上げます。 アレだとちょっと何が言いたかったのか意味不明ですので、改めて解説したいと思います。スライドはもう上げなくていいか。。 PSRとは PSRとはPHP-FIGっていう、色々なフレームワーク原作者同士の集まりみたいなところで策定されている「コーディング規約」です。標準だの何だの書いてありますが、要はコーディング規約ですよ。 ずっと公式サイトが無くてググラビリティが低いなクソッと思っていたら、いつの間にか公式サイトができていたようです。これで安心して「PSR公式サイトはここだよ!」と案内できますね PHP-FIG レベル分けがあって、今はPSR-0, PSR-1, P

    PSR-0はなぜ0(≒最重要)なのか
  • trait時代のライブラリ設計を予想してみる #php5_4

    この記事はPHP5.4 Advent Calendar 2011の23日分です。 trait自体はすでに10日目の@tpyamamotoさんによるTRAITでデザインパターン再考でも取り上げられていますが、目玉機能なのでもう一回ネタにしちゃいます>< おさらい:traitとは 相変わらず公式マニュアルが充実しまくっているのでそちらを見た方がいいのですが、抜粋するとこんな感じ。 PHP5.4の目玉機能 多重継承を安全に行えるよう導入された概念 traitはプロパティ・メソッドを持てる traitは定数を持てない trait自体はインスタンス化できない classを継承してtraitを作ることはできない interfaceを実装してtraitを作ることはできない traitを継承してtraitを作ることが可能 classは複数のtraitを継承して実装を再利用できる traitはclassでは

    trait時代のライブラリ設計を予想してみる #php5_4
  • extensionだけで書かれたPHPフレームワーク・Yafを試してみた

    Yaf(Yet Another Framework)はextensionだけで書かれたPHPのWeb Application Frameworkです。peclをなんとなく眺めていて見つけました。フルスタックというわけではなく、コントローラーやディスパッチャの部分が主に提供されています。 Zend Frameworkの高速化記事でも書きましたが、フレームワークはライブラリをロードする部分にもっともコストがかかります。extensionで書かれている場合、このロードの時間が無視できるようになりますから、かなりの性能向上が期待できそうです。(もちろん処理自体が速くなることも期待できます) Yafのドキュメントはまだまだ充実していないようですが、MVCかつFrontController Patternを採用したアーキテクチャで、非常にZend Frameworkとよく似た構成になっています。なので

    extensionだけで書かれたPHPフレームワーク・Yafを試してみた
    ryster
    ryster 2011/10/21
    これはすごい
  • 素のPHPをテンプレートエンジンとして使うときのコーディング規約

    プログラムとしてPHPを書くときのコーディング規約は、PEARやZendなど代表的なものがたくさんありますが、テンプレートエンジンとしてPHPを使う場合にはそのまま適用しにくいものです。 テンプレートエンジンのコーディング規約って、検索してもあまり見つからなかったので、個人的に採用しているものを晒してみます。あんまり語る人を見たことがないので、「俺はこうしてるよ」とか「ここキモくね?」とかご意見いただけるとうれしいです。 目指すところ 複雑なロジックをテンプレートに書かない / 書けないように規約で縛る 少しでも読みやすさを追求する できあがりのHTMLの美しさも追及する <%= $this->doctype() %> <html> <head> <%= $this->headMeta() %> <%= $this->headLink() %> <%= $this->headTitle()

    素のPHPをテンプレートエンジンとして使うときのコーディング規約
    ryster
    ryster 2011/10/02
  • 1