2013-01-05 125 views
0

我正在創建一個將Cpanel xmlapi集成到Symfony中的CpanelBundle。 我將在這裏使用CpanelInc提供的類:https://github.com/CpanelInc/xmlapi-phpSymfony2在捆綁中使用第三方供應商

我想讓這個軟件包可以跨項目使用並且也是開源的。

Symfony文檔說你不應該把第三方庫放到你的包中。 Cpanel類也沒有名稱空間,它不在composer上。

我可以而且應該放在供應商的文件夾中的交友類,但我怎麼可以把它添加到自動加載和我捆綁composer.json所以當我釋放我的包的用戶還將得到它?

回答

1

你好,你可以使用作曲家加載這個文件。請參閱composer autoload documentation

你composer.json可以看起來像:

{ 
    "name": "my/bundle", 
    "autoload": { 
     "psr-0": {"": "src"} 
    }, 
    "require": { 
     "php": ">=5.3.2", 
     "symfony/framework-bundle": ">=2.1,<2.3-dev", 
     "CpanelInc/xmlapi-php": "*" 
    }, 
    "repositories": [ 
     { 
      "type": "package", 
      "package": { 
       "name": "CpanelInc/xmlapi-php", 
       "version": "master-dev", 
       "dist": { 
        "url": "http://github.com/CpanelInc/xmlapi-php/zipball/master", 
        "type": "zip" 
       }, 
       "source": { 
        "url": "git://github.com/CpanelInc/xmlapi-php.git", 
        "type": "git", 
        "reference": "master" 
       }, 
       "autoload": { 
        "files" : ['xmlapi.php'] 
       } 
      } 
     } 
    ] 
} 

會更好,當你只是創建composer.json,並將其添加爲CpanelInc/XMLAPI-php和做PR :)

+0

哇。這看起來非常棒。非常感謝! – brpaz

+2

我認爲'autoload'部分可以更好。即使沒有使用Cpanelnc/xmlapi-php,它也會在每個請求中自動加載。你應該使用[一個類圖](http://getcomposer.org/doc/04-schema.md#classmap) –

+0

我已經在這篇文章後研究了作曲家文檔,並且也找到了類圖。 – brpaz