2016-08-04 2 views
4

Amazon MWS PHPクライアントライブラリは名前空間を持たないzipファイルです。このライブラリをLaravelアプリケーションまたはその依存関係管理のためにコンポーザーを使用するアプリケーションで使用する方法はありますか?作者ロードクラスネームスペースなし

答えて

1

もちろん、Laravelアプリで独自のライブラリディレクトリを作成するだけです。私は通常、appディレクトリの中に私のものを保ち、Librariesと呼ぶ。 AmazonMWSなどのフォルダ内にソースファイルをダンプします。

.config.inc.phpにはオートローダーが付属していますが、使用されません。代わりに、恐らくあなたのLaravelプロジェクトにcomposer.jsonを開いて、設定を対象とした新しいライブラリディレクトリを自動読み込みするように指示することができます。例:

"autoload-dev": { 
    "classmap": [ 
     "app/Libraries/AmazonMWS/Client.php" 
    ] 
} 

config.inc.phpAmazonMWSルートにアクセス可能であることを確認してください。

次に、composer dump-autoloadを実行してオートローダーを再生します。適切に実行されると、名前空間なしでMWSクラスのいずれかをインスタンス化できるはずです。お使いのコントローラで

は、次のようuseのものがあります。

use \MarketplaceWebServiceProducts_Client; 

期待通りに今、あなたはあなたのサービスを呼び出すことができます。

$config = [...]; 

$service = new MarketplaceWebServiceProducts_Client(
    AWS_ACCESS_KEY_ID, 
    AWS_SECRET_ACCESS_KEY, 
    APPLICATION_NAME, 
    APPLICATION_VERSION, 
    $config); 

それともuse \MarketplaceWebServiceProducts_Client;を省略して、名前空間接頭辞、あなたの選択を直接インスタンス化します。

+0

私は次のように 'アプリ\ライブラリ\ AmazonMWS' そして更新composer.json内のアマゾンのクラスを置く: ' "自動読み込みを":{ "クラスマップ":[ "データベース" ]、 "PSR-4" :{ "アプリケーション\\": "アプリ/" }、 \t \t "ファイル":[ \t \t \t "アプリ/ライブラリ/ AmazonMWS" \t \t] \t} ' と私はまた'作曲を実行しますdump-autoload'ただし、いつ私はサーバにエラーを出し始めました _Failed openingは'app/libraries/amazonmws 'をc:\ ... \ autoload_real.php_に入れます なぜこの行を追加しますか? '' classmap:["database"] ' –

+0

これは私の' composer.json'ファイルのサンプルです。私の更新された答えを確認して一度それを試してみてください。 –

+0

私はそれを正確に行い、Laravelはこのエラーを生成しています** Class 'MarketplaceWebServiceOrders_Client'が見つからない場合** –

関連する問題