2

PHPフレームワークを学習しようとしています。しかし、ルーティングの概念のいくつかを理解するのに苦労しています。

Flightを使用することにしました。彼らのホームページは次のとおりです。

require 'flight/Flight.php';

Flight::route('/', function(){
    echo 'hello world!';
});

Flight::start();

そして、私は彼らが何のために使っているのか理解できませんFlight::route...。私は何が欠けていますか?この質問は Flight とは関係ありません。一般的なルーティングのみに関連しています。

4

5 に答える 5

4

ルーティングは、基本的に HTTP リクエストをメソッド/関数にマップします。

簡単に言うと、次のルートがあるとします。

Flight::route('/page1', function() {
    echo 'page1!';
});

これは基本的に起こりました:

  1. クライアントのリクエストexample.com/page1
  2. サーバーがクエリを PHP に送信する
  3. PHP フレームワークがリクエスト URL を解析する
  4. 私たちの場合、正しいルートを選択します。page1/
  5. そして最後に、渡した関数を呼び出すので、基本的にecho 'page1';
于 2015-06-10T11:07:53.213 に答える
2

あなたのファイルで何が起こっているようですか(私はFlightに精通していません)

これrequire 'flight/Flight.php';は、すべてのルーティングのクラスを定義する可能性が高いです。

次に、クラスのインスタンスなしでクラスのメソッドFlight::route();を使用するだけです。route()Flight

Flight::route('/', function(){
    echo 'hello world!';
});

ここで何が起こるかというと、ルートが一致したときです (一致するとは、ユーザーの URI がルートの URI と一致することを意味します。この場合www.yourdomain.com/、ルートと一致し'/'ます)。その後、コールバック内のコードfunction()が実行されます。

別のルートを追加する場合

Flight::route('/about', function(){
    echo 'About Us';
});

ユーザーが訪問www.yourdomain.com/aboutすると、そのルート内にあるものを取得します。

于 2015-06-10T11:07:04.857 に答える
2

Flightphp には、ルートの設定方法に関するかなり包括的な説明があります

ルートは、さまざまなリクエスト パターンの処理方法の定義として表示されるはずです。Flight のホームページの例では、サイトのルート (つまり /) にアクセスすると、単純に "hello world!" が返されると書かれています。応答として。

Flightphp インストール ページをさらに読むと、すべてのリクエストが index.php ページによって処理されることがわかります。したがって、定義したルートに応じて、その URL 要求パターンに対して定義された関連する応答で応答します。

于 2015-06-10T11:05:52.360 に答える
1
Flight::route('/', function(){
    echo 'hello world!';
});

このスニペットはプロジェクトの核心です。

これは 2 つのパラメーターを受け入れます。

  1. ルート

  2. このルート呼び出しで呼び出すメソッド

以下のコード スニペットを検討してください。プロジェクト ディレクトリhttp://localhost/flight_project/がある場合、誰かがこのディレクトリを要求すると、次のように定義された関数'function_here'が呼び出されます。

Flight::route('/', 'function_here');

以下のようにルートを定義した場合、

Flight::route('/user/', function(){
    // do something here
});

誰かが にアクセスするhttp://localhost/flight_project/user/と、上記のインライン関数が呼び出されます。

詳細はこちら

于 2015-06-10T11:06:39.070 に答える
1

route() は静的関数のようです。つまり、オブジェクトに固有のものではありません。つまり、次のようなオブジェクトを作成することはできません。

$flight = new Flight();

そして電話する

$flight->route(...)

むしろ、クラスを介して呼び出します(クラスの特定の実装であるオブジェクトではありません)。この場合、:: を使用してクラスの静的関数を呼び出します。

Flight::route(...)

ルートの内容は、「/」に遭遇したときは「X」を実行することを示しています...そしてあなたの場合、「X」は

function(){
    echo 'hello world!';
}

後の段階では、次のようなものに一致します

'/' (homepage, i.e. "mywebsite.com/")
'/about-us' (About Us page, i.e. "mywebsite.com/about-us")
'/user/{id}' (User page, i.e. you can pass a parameter such as "mywebsite.com/user/taylor" and then get the user data)

またはあなたが望むものは何でも。関数をルーティング ファイルに書き込むだけでなく、特定の関数 (通常はコントローラー関数) に移動するようにルーターに指示し、そこでさらに多くのことを行うことができます。

これが役立つことを願っています!

于 2015-06-10T11:06:03.397 に答える