Laravel 4で名前空間を使用する 質問する

Laravel 4で名前空間を使用する 質問する

私は Laravel を初めて使い、PHP 名前空間全般を使用しています。File という名前のモデルを作成するまで、問題に遭遇したことはありませんでした。File モデル クラスを使用できるように、名前空間を正しく設定するにはどうすればよいでしょうか?

ファイルはapp/controllers/FilesController.phpとです。でapp/models/File.php新しい を作成しようとしています。FileFilesController.php

ベストアンサー1

名前空間の設定は、一度コツをつかめば非常に簡単です。

次の例を見てみましょう。

app/モデル/File.php<?php

namespace App\Models;

class File {

    public function someMethodThatGetsFiles()
    {
    
    }
}

アプリ/コントローラ/FileController.php<?php

namespace App\Controllers;

use App\Models\File;

class FileController {

    public function someMethod()
    {
    
        $file = new File();
    }
}

名前空間を宣言します。

namespace App\Controllers;

覚えておいてください。PHP の組み込みクラスにアクセスするためにクラスを名前空間に配置したら、ルート名前空間から呼び出す必要があります。例: は次の$stdClass = new stdClass();ようになります$stdClass = new \stdClass();( を参照\)。

他の名前空間を「インポート」する:

use App\Models\File;

Fileこれにより、名前空間プレフィックスなしでクラスを使用できるようになります。

あるいは、次のように呼び出すこともできます:

$file = new App\Models\File();

useただし、コードをスキャンしなくてもファイルの依存関係をすべて確認できるため、ステートメントの先頭に配置するのがベストプラクティスです。

それが完了したら、composer dump-autoload新しく追加されたクラスを考慮に入れるために、Composer の自動ロード機能を更新するために実行する必要があります。

URL 経由で FileController にアクセスする場合は、ルートを定義して、次のように完全な名前空間を指定する必要があります。

Route::get('file', 'App\\Controllers\\FileController@someMethod');

これにより、すべてのGET /fileリクエストがコントローラのsomeMethod()

PHPのドキュメントをご覧ください名前空間そしてNettut'sは常に良いリソースであり、これ記事

おすすめ記事