質問

Intuit QuickBooks API Trough Trough Trough Trough Troughに接続するアプリケーションに取り組んでいますPHP SDK。基本的なPHPでは、ファイルをロードしてから問題なく動作しています。

require_once('../api/config.php');  // Default V3 PHP SDK (v2.0.1) from IPP
require_once(PATH_SDK_ROOT . 'Core/ServiceContext.php');
require_once(PATH_SDK_ROOT . 'DataService/DataService.php');
require_once(PATH_SDK_ROOT . 'PlatformService/PlatformService.php');
require_once(PATH_SDK_ROOT . 'Utility/Configuration/ConfigurationManager.php');
.

今、Symfony2コントローラのライブラリをバンドルから使用する必要があります。私はたくさんのドキュメントを読みました link1 symfonyクラスローダーコンポーネントといくつかの他のものもまったく明確ではありません。今のところ、image show

としての/vendorフォルダにこの構造を作成しました。

ベンダー構造

あなたのものが見ることができるconfig.phpファイルはこのコードを持っています:

/**
 * This file allows custom configuration of paths for XSD2PHP dependencies and
 * POPO classes.  Rarely necessary, but possible.
 *
 * @author Intuit Partner Platform Team
 * @version 1.0
 */

// Determine parent path for SDK
$sdkDir = __DIR__ . DIRECTORY_SEPARATOR;

if (!defined('PATH_SDK_ROOT'))
    define('PATH_SDK_ROOT', $sdkDir);

// Specify POPO class path; typically a direct child of the SDK path
if (!defined('POPO_CLASS_PATH'))
    define('POPO_CLASS_PATH', $sdkDir . 'Data');

// Include XSD2PHP dependencies for marshalling and unmarshalling
use com\mikebevz\xsd2php;
require_once(PATH_SDK_ROOT . 'Dependencies/XSD2PHP/src/com/mikebevz/xsd2php/Php2Xml.php');
require_once(PATH_SDK_ROOT . 'Dependencies/XSD2PHP/src/com/mikebevz/xsd2php/Bind.php');

// Includes all POPO classes; these are the source, dest, or both of the marshalling
set_include_path(get_include_path() . PATH_SEPARATOR . POPO_CLASS_PATH);
foreach (glob(POPO_CLASS_PATH.'/*.php') as $filename)
    require_once($filename);

// Specify the prefix pre-pended to POPO class names.  If you modify this value, you
// also need to rebuild the POPO classes, with the same prefix
if (!defined('PHP_CLASS_PREFIX'))
    define('PHP_CLASS_PREFIX',    'IPP');
.

とクラスローディングマジックが少なくともQBO PHP SDKウェイの場合、

  • Symfony2としてクラスを使用するためにこれに対処する必要がありますか。
  • これはPSR-0ライブラリであるため、Symfonyクラスローダーコンポーネントのソリューション?
  • 私にこの作業を手に入れるのを助けるためにいくつかのアイデアやいくつかのコードを教えてください。
役に立ちましたか?

解決

Symfony Use Composer。それで、あなたのSDKを含める最も簡単な方法は、一方向または別の方法で、作曲家と互換性があるようにすることです。

これは、パッケージの根元にcomposer.jsonを必要とします。それを作成してください。

最も簡単な解決策

composer.jsonautoloadセクションにClassMap命令を入れる:

"autoload": {
    "classmap": ['src/'],
},
.

Composerは、オートロードファイルを生成するときにsrc/ディレクトリを再帰的にスキャンします。そして、名前空間や何かを変更することなく、必要に応じてすべてのクラスがインポートされます。

下側は、ライブラリがまだPSR0に従わないことです。

面倒な溶液

PSR0-IFY各ソースファイルを編集して、各ファイルの上に右のnamespace命令を追加します。 SDK内のクラス数を考えるのは簡単ですが面倒です。

このように、パッケージのuseautoloadセクションを追加できます。

"autoload": {
    "psr-0": {
        "QBO\\": "src/"
    }
},
.

代替ソリューション

このAPIを検索するときは、 consosyte / quickbooks-php Packagist ...多分試してみてください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top