2016-06-22 7 views
0

私は既存のライブラリをLaravel5に統合しようとしています.Laravel5自体は名前空間ではなく、独自のクラスをrequireを使ってサブフォルダで使用しています。 私は 'app/API/libname/mainlibclass.php'に配置しました。 'app/API/libname/toolkit'にある兄弟ディレクトリを持ち、ライブラリに使用するクラスが含まれています。laravel 5クラスイテレータ

$objectinstance=new Mainlibclass(); 

ので、メインLaravelアプリで私は、後に続い

use app/API/libname/Mainlibclass 

を持って、私は(正しい?)が必要ですステートメントを使用してクラスを作成することができませんLaravelコントローラから呼び出す

前に通常

$objectinstance=new Mainlibclass(); 

既存のライブラリとそれ自身の使用するクラスでは、それぞれ

namespace app/API/libname 

必要に応じて「使用」します。 クラスが見つかりませんでしたが、ファイルの1つが 'implements Iterator'を使用しています - エラー 'Interface \ App \ API \ libname \ Iterator'が見つかりません。その目の前で\を追加

答えて

1

てみてください、それは次のようになりますので、私は簡単にするために(psr-4/0ライブラリそのまま外部の非を維持するために、より良い練習になると思います

class ABC implements \Iterator { 

編集将来必要に応じて更新)、app/ディレクトリの外にあります。

これにはcomposer classmap autoload featureを使用できます。

+0

私はそれを愉快にuse \ Iteratorで試していました。そして同じものを持っていた - クラスが見つからなかった – Datadimension

+0

あなたのリンクは私の状況にとって最高ではなかったが、あなたは正しいトレイルに私をつかんだので、答えにそれを受け入れる。さらに、元のコードで何も変更しないというあなたの理想は、私が維持しているライブラリではなく、最初から私の意図でした。したがって、私は作曲家にパスを追加し、作者のダンプ自動ロードを行い、いくつかのコード修正を行った。オリジナルは完全に元通りで、私はLaravel5からラッパーを持っています。ありがとうございました – Datadimension

+0

PSは今 '\ Iterator'の必要はありません。このアプローチにも必要はありません。メインライブラリクラスがありました。私はクラスをクラスマップし、PHPの汎用クラス – Datadimension