2016-08-31 11 views
2

私のローカルホストには、現在のlaravelプロジェクトで使用できるいくつかのクラスが含まれているパブリックディレクトリがあります。laravelプロジェクトに外部ファイルを含めるにはどうすればいいですか?

これらの外部クラス/ファイルはどのようにlaravelに含めるのですか?私は関数を呼び出すしようとしたとき、私は私のcomposer.jsonファイルでこれらのファイルを追加しようとしました

"autoload": { 
     "classmap": [ 
      "database", 
      "../public_classes/priceClass.php" 
     ], 
     "psr-4": { 
      "App\\": "app/" 
     }, 
     "files": [ 
      "../public_classes/priceClass.php" 
     ] 
    }, 

とやるcomposer dump-autoload、そして、それは動作しません。

+0

含めるファイルの種類を教えてください。クラス(名前空間付き)または単純な関数? – Andrew

+0

私はoopクラスをインクルードしたいと思っていましたが、私は単純な関数を使ってしまいました。 –

答えて

0

最終的に私はcomposer.jsonのファイルにパスを入れてからcomposer dump-autoloadを実行します。

composer.json:

"autoload": { 
     "classmap": [ 
      "database", 
      "../public_classes/priceClass.php" 
     ], 
     "psr-4": { 
      "App\\": "app/" 
     }, 
     "files": [ 
      "../public_classes/priceClass.php" 
     ] 
    }, 

、その後、私は追加したいファイルは、私は単純な関数の代わりに、OOPのものにそれを編集します。

priceClass.php:

<?php 

function getPrices(){ 
/* 
* 
* 
*Statements here 
* 
*/ 
} 

?> 

そして、私のようなもの持ってしようとしたときので、私は、これをしなかっただけで

$prices = getPrices(); 

によって私laravelコントローラでそれを呼び出す:

class Prices(){ 

    public function getPrices(){ 
     .... 
    } 

} 

私のlaravelコントローラでそれを呼び出す:

$priceClass = new Prices(); 
$prices = $priceClass->getPrices(); 

エラーが発生しました。料金クラスが見つかりませんでした。

2

PSR-4を使用している場合は、composer.jsonに何も追加する必要はありません。たとえば、\app\MyClasses\MyClass.phpにPHPファイルを作成し、カスタムクラスでこの名前空間を使用できます(namespace App\MyClasses)。

Laravelがこのクラスを自動的に読み込みます。

+0

私がインクルードしようとしているファイルは、laravelプロジェクトと同じディレクトリに属していません。ファイルは別のディレクトリにあります。彼らは私のリポジトリクラスです。 –

2

Laravel Projectに新しいディレクトリ(app/Libraries)にファイルをコピーし、すべてのクラスにPackage名を割り当てて、それらのクラスファイルすべてに対してPSR-4 Autoloading standardをフォローした私のcomposer.jsonに次のコードを追加しました。

 ... 
     "autoload": { 
      "classmap": [ 
       "app/Libraries", 
      ], 
... 

は助けて幸せ

...これはあなたの問題を解決することを願っています!

関連する問題