2016-06-01 4 views
0

$url = Router::url(...);を本(http://book.cakephp.org/3.0/en/development/routing.html#generating-urls)として使用しようとしていますが、コントローラにuse Cake\Routing\Router;を追加して動作させることができますが、もっと簡単で良いそれよりも、私はClass::function()によって決して機能を呼び出さないと言っている人を思い出しています。CakePHP 3.xで正しいクラスの使用法

それ以上の研究(見過ごされることはありません)では、それは単なるクラスのようです。 use Cake\Routing\Router;

    1. 負荷クラスの静的を使用するには$url = $routes->url(...);

    関数を呼び出すために、クラスのインスタンスを使用して(?)$routes = new Router();

  • でクラスをインスタンス化クラスの機能は実際にそれでありますクラスをインスタンス化するか、単にRouter :: url()を使用する方が良いでしょうか?

  • +2

    あなたはかなり遅れていて、名前空間を学ぶ時間です。 http://php.net/manual/en/language.namespaces.phpこれはCakePHPとは何の関係もなく、PHPの名前空間です。名前空間は、今では非常に共通です。それらに慣れてください。 – burzum

    +0

    チップをありがとうが、それはそれより簡単なもののように見えます。 – Naidim

    答えて

    2

    クラスの静的(?)関数を使用するには、Classをインスタンス化するか、単にRouter :: url()を使用する方が良いでしょうか?

    url()は、クラスルーターのpublic staticメソッドです。 PHPでそれを呼び出す正しい方法はRouter :: url(...)です(スコープ解決演算子::)を使用しています。

    私は、Class :: function()によって決して関数を呼び出さないと言った人を思い出してください。

    あなたがそれを見つけることができるなら、私は彼または彼女の推論を聞くことに興味があります。

    スコープ解決演算子が静的メソッドにアクセスする最善の方法ではないということを彼または彼女が意味した場合、彼または彼女は間違っています。 PHPのmanに関する限り、スコープ解決演算子はクラスコンテキストの外部からpublic staticメソッドにアクセスする正しい方法です:Scope Resolution Operator

    +0

    それが動作し、コードを保存し、大きな「落書き」がない場合、私は満足しています。ありがとう。 – Naidim

    +0

    @CbNrZvWd、静的メソッドの作成を避けるための非常に真実かつ大きな理由。しかし、OPは静的メソッドを呼び出すことについての明確化を求めていました。 – clarkatron

    関連する問題