0

Silex (マイクロフレームワーク) を使用してアプリを構築しています。

アプリのサイズが大きくなり、複数のルートで同じコードを使用する必要性が高まるにつれて、すべてをもう少し整理したいと思います..

私の考えは、いくつかのカスタム クラスを作成し、それらをアプリと共有することです。

$app['test'] = $app->share(function () {
    require_once('../vendor/acme/src/test.php');
    $testClass = new Test();
    return new $testClass;
});

これは実際に機能しますが、次の点で助けが必要です。

  1. composer でクラスを自動ロードします (Silex で行われるはずの方法)。
  2. クラス内で既存の Doctrine DBAL 接続とメソッドを使用できるようになりました。

私は Silex のドキュメントがあまり役に立たず、Silex と Composer の両方の初心者であるため、誰かがどうやってうまくいくかについてのヒントを教えてくれることを願っています。

4

1 に答える 1

2

autoloading について composer docs を確認してください。構成を追加したら、実行composer dump-autoloadして composer autoloader を再生成する必要があります。その後、require_once はもう必要ありません。

ほとんどの場合、これでうまくいきます (クラス Test が src/Test.php にあると仮定します):

{
    "autoload": {
        "psr-0": {
            "": "src/"
        }
    }
}

これにより、src/ 内のすべての PSR-0 準拠クラスがオートロード可能になります。

2 番目のポイント (クラスで DBAL を使用) に関しては、サービスにアクセスする silex サービスとしてクラスを構成する必要がありますdb。サービスについては、http://silex.sensiolabs.org/doc/services.htmlを参照してください。

于 2012-11-20T13:15:48.423 に答える