2016-04-10 10 views
0

私はLaravelフレームワークで作業しています。新しいクラスをlaravelで作成する5.2

私はクラス作成に関する質問があります。 私はあなたの例を与えるだろう、私の質問を説明するために:

class articleController extends Controller{ 
    public function bla(){ 
     $a = new MyNewClass($colorfulVariable); 
     $b = $a->createSomething(new MySecondNewClass()); 
    } 
} 

さて、クラスMyNewClassMySecondNewClassは、私が使用して同じように、私がしたいすべてのコントローラにそれらを使用し、私はそれらを作成したい、存在しません。 Laravelが提供するリダイレクトまたはリクエストクラス。

このクラスはどのように作成できますか?私のlaravelプロジェクトでそれらを使う新しい機能を作ってください。

+0

こんにちはItzhak、あなたは前にそれらを作成せずにclaseを使用することはできません。あなたの質問についてもっと詳しく教えてください。よろしく! –

+0

これは単なるコード例です。このクラスは実際には存在しません。いつ私はそれらを作成でき、どのように使用できますか? –

+0

今、私はあなたを理解しています。 wezzyが言うように、Appフォルダ内のどのクラスもロードされますが、新しいクラスごとに正しい名前空間を設定してください。 –

答えて

3

これらのクラスは、アプリケーションフォルダ(またはすべてのユーティリティを含むライブラリフォルダを作成するサブフォルダなど)で作成できます。 App \ YourClassを使用するだけです。これらのクラスとlaravelを使用する前に、あなた

+0

フォルダを作成してクラスを追加するだけですか? laravelは新しいライブラリやクラスを簡単に管理する素晴らしいオプションを作成していませんでしたか? –

+0

3Dパーティライブラリを使用する場合は、コンポーザを使用できます。しかし、あなたのプロジェクトのためだけにカスタムクラスを作成したいのであれば、最も速い方法は、アプリケーションフォルダにクラスを作成することです。 – wezzy

+0

そして、私はそれらを@Alexeyのようなcomposer.jsonファイルに含める必要があります。 –

2

のためのクラスが含まれますあなたはいつものようにあなたのクラスを作成することができますが、composer.json自動ロードセクションにそれらを含めることを忘れないでください:

"autoload": { 
    "classmap": [ 
     "App\MyClassesNamespace" 
.... 

そしてへcomposer dumpautoコマンドを実行しますオートローダーファイルを再構築します。これをしないと、アプリケーションでクラスを使用できなくなります。

0

あなたは物事下記以外に何もする必要はありません。

  1. のApp \フォルダ内のクラスを作成します。
  2. クラスを使用するときは、「use App \ XYZ;」を使用してクラスをインポートする必要があります。インポートクラスの上に配置します。

thatsです。ほとんどの人が大会に従い、App \フォルダーに "Service"フォルダーを作成します。 laravelフレームワーククラス以外のエイリアンクラスをサービスフォルダに作成するのは良いことです。

1

Laravel 5. *は、app /ディレクトリ内のPSR-4を使用して自動読み込みされます。これはcomposer.jsonファイルで確認できます。あなたはそれを名前空間を確認して、あなたのSomeClass.php内、

app/folder1/folder2/SomeClass.php. 

その後:

"autoload": { 
    "classmap": [ 
     "database/seeds", 
     "database/factories" 
    ], 
    "psr-4": { 
     "App\\": "app/" 
    } 
}, 

基本的に、あなたは、アプリ内の別のディレクトリを作成することができ、その後、必要に応じてそこにファイルを名前空間

<?php namespace App\folder1\folder2; 

class Someclass {} 

、あなたは、クラス内の名前空間を使用して、このクラスにアクセスすることができます

use App\folder1\folder2\SomeClass; 
関連する問題