2016-08-08 11 views
1

私はLaravelのルートに新しいディレクトリLibraryを作成しました。コントローラLaravelのカスタムクラスのインポート方法は?

私はクラスを使用してファイルに置く内部:

class My { // }

ので、コントローラLaravelに、私はこのクラスへのアクセスを取得しよう:

App\Library\My 

をしかし、Laravelはこのパスを決定するものではありません。

これは私のコードです:

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 

use App\Http\Requests; 

use View; 

use App\Library\My; 

class HomeController extends Controller 
{ 
// 
} 
+0

'composer dump-autoload'を実行しないと' psr-4'を使いましたか? – Maraboc

+0

それは助けになりませんでした: 'composer dump-autoload' – Dev

答えて

1

上記のように、Appディレクトリに配置されていることを確認して、適切な名前空間になっていることを確認してください。

<?php 
    $fOne = new \App\library\functions; 
    $isOk = ($fOne->isOk()); 
?> 
2

あなたは

namespace App\Library\My

appフォルダがコントローラ

psr-4

をalrdy使用されているappフォルダ内Libraryフォルダを作成する必要があります210

use App\Library\My as My

私の仕事です。この回答は役に立ちましたか?

+0

私はいくつかの名前空間を使いたいのですが? – Dev

+0

'Library \ My'のようなアプリなしで別の名前空間を使いたい場合は、' autoload'> 'psr-4'でファイル' composer.json'を見てください。あなたのカスタムオートロードを新規に挿入し、 'terminal'で' composer dump-autoload'を実行してください –

+0

@Devそれは動作するのでしょうか? –

2

すべてのクラスの名前空間を正しく設定する必要があります。

ですから、そう

use App\Library\My; 

.... 

$my = new My(); 

それとも、クラス名が競合した場合

use App\Library\My as MySecond; 

.... 

$my = new MySecond(); 

をインポートする際、あなたはクラス名をエイリアスするasキーワードを使用することができるように、useキーワードであなたのクラスをインポートすることができますメソッド内でクラスに直接アクセスしたい場合は、そのようにアクセスできます。

$my = new \App\Library\My(); 

注:大手\アプリはグローバルスコープで宣言されたことを意味します。

+0

'使用App \ Library \ My; ' - 未定義の名前空間 – Dev

+0

@Devあなたのクラスのコードとあなたの所在地を表示しますクラスにアクセスしようとしていますか? –

+0

質問にこの情報を追加しました – Dev

関連する問題