ダミアンの答えに基づいて、Composerがこれを行う最も簡単な方法を提供していることがわかりました。
今、私のクラスはディレクトリExportExcel
に住んでいます。src/
私のディレクトリの構造は次のとおりです。
src /
ベンダー/
index.php
bootstrap.php
composer.json
内composer.json
で、クラスをロードするように依頼しました。
{{
"名前": "adityamenon / excel_export"、
"description": "データをカスタムExcelシート形式にエクスポート"、
"必要とする": {
"symfony /dependency-injection": "2.2.x-dev"、
"symfony / yaml": "2.1.x-dev"、
"doctrine / dbal": "2.4.x-dev"、
"mockery / mockery": "dev-master"、
"CodePlex / PHPExcel": "1.7.8"
}、
"自動ロード":{
"psr-0":{"ExportExcel": "src /"}
}、
「作者」:[
{{
"名前": "aditya menon"、
"メール": "adityamenon90@gmail.com"
}
]
}
$ composer install
すべての依存関係をで魔法のように表示するには、実行する必要がありますvendor/
。
PSR-0は簡単にフォローできます。ExportExcel.php
名前空間付きのクラスで呼ばれるファイルを作成しましたExportExcel
:
namespace ExportExcel;
class ExportExcel {
public function __construct(\ExportExcel\DbConvenience $db_convenience)
{
$this->DbConvenience = $db_convenience;
}
public function writeExcelFile()
{
// ...do stuff here
}
}
最後に、bootstrap.phpがあります。これは、必要なものの自動読み込みと依存関係の挿入を処理します。
<?php
// composer autoloads dependencies
// also configured to load from src/
$loader = require('vendor/autoload.php');
// load configuration (only db right now)
use Symfony\Component\Yaml\Yaml;
$yaml_config = Yaml::parse('config.yml');
// load the database
$db_config = new Doctrine\DBAL\Configuration();
$conn = Doctrine\DBAL\DriverManager::getConnection($yaml_config, $db_config);
// load the convenience classes
$DbConvenience = new ExportExcel\DbConvenience($conn);
// use the dependency injector to load the exporter with DB
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Reference;
$sc = new ContainerBuilder();
$sc->setParameter('dbconvenience.class', 'ExportExcel\DbConvenience');
$sc->setParameter('exportexcel.class', 'ExportExcel\ExportExcel');
$sc
->register('dbconvenience', '%dbconvenience.class%')
->addArgument($conn);
$sc
->register('exportexcel', '%exportexcel.class%')
->addArgument(new Reference('dbconvenience'));
// here's the most important class of 'em all
$ExportExcel = $sc->get('exportexcel');
最後に、index.phpの最初の行はrequire('bootstrap.php');
、です。$ ExportExcel-> doStuff();を使用してExportExcel内の関数を呼び出すことができます。
コメントを追加して、この回答を短縮/改善してください。このパズルを解くのは少し大変で、少し読んでみましたが、後から考えるとすべてがとても明確です。