2017-10-10 17 views
0

私はgraphql-phpを使ってプロジェクトを進めています。 an exampleは、このようなクラスを作成示唆しているがあります:これは正常に動作します動的クラスメソッドの名前

Types::page()またはTypes::category()

use Project\CategoryType; 
use Project\PageType; 

class Types { 


private static $page; 
private static $category; 

    public static function page() { 
     return self::$page ?: (self::$page = new PageType()); 
    } 

    public static function category() { 
     return self::$category ?: (self::$category = new CategoryType()); 
    } 
} 

後、私はそうのように、このクラスのメソッドを使用することができます。しかし、私はこれが反パターンであり、最適化できると思います。プロジェクトが成長するにつれて、類似の機能およびプライベートクラスフィールドの数が増え、これは不便になる。 クラスをリファクタリングする方法はありませんので、手動で各タイプの関数を追加する必要はありませんが、今でもクラスメソッドを呼び出していますか? (Types::page())。

+0

はい、これが鍵と思われます。どうもありがとうございます。私はそれを受け入れることができますか、または私は自分自身で完全なソリューションを投稿する必要がありますので、あなたは答えを投稿してください。 – Ssey

+0

ようこそ。それが助けられたと聞いてうれしい。 – tan

答えて

関連する問題