2

Symfony2.1 アプリで Doctrine2 の EntityAudit 拡張機能を使用しようとしています。

私はこれに非常に慣れていません.Symfonyの新しいバンドルをインストールするための「正しい」方法が何年にもわたってどれだけあったかを理解し始めました. ある種の「Deps」ファイルが以前は存在していましたが、もう存在しませんか? Symfony をインストールするとき、「Composer を使用する」はオプションでしたが、純粋にオプションのようでした。今、私はそれが真実ではないと考え始めています。

EntityAudit の指示では「Autoload」と言及されており、他のことに基づいて、どうやら Autoload.php の registerNamespaces 配列を変更することになっているようです。私がそれを持っていないことを除いて。それで、Symfony2.1がComposerの使用を支持してそれを行わなくなったことを男が示しているこのリンクを見つけました。

ただし、この場合の Composer の使用方法はよくわかりません。実際、私はそれを使用する方法をまったく知りませんが、その中で1つまたは2つの基本的なことを行うことで失敗したようです-それ自体を「更新」し、「インストール」します..ベンダー?とにかく、このニーズに適応するのに十分な一般的な指示は見つかりません。助けてくれてありがとう!

4

1 に答える 1

4

deps ファイルは、依存関係を管理するために 2.0 で使用されます。2.1 バージョンでは、はるかに優れた Composer 依存関係管理ツールが使用されています。

コンポーザーでインストール

まず、composer に関するいくつかのbasix が必要です。たとえば、この記事を読んでください: http://net.tutsplus.com/tutorials/php/easy-package-management-with-composer/

composer を使用してバンドルをインストールする前に、そのバンドルの Packagist パッケージを探す必要があります。SimpleThings\EntityAuditBundleパッケージを探す必要がありますが、存在simplethings/entity-audit-bundleします: https://packagist.org/packages/simplethings/entity-audit-bundle

サイドノート

Packagist は、Composer の主要なアーカイブです。バンドルを探している場合は、 KnpBundlesをチェックするのが最善の方法です。これは、Symfony バンドルの非公式アーカイブです。バンドルに README ファイルが含まれている場合はそこに表示され、Packagist パッケージが含まれている場合はパッケージへのリンクが表示されます。バンドルの検索を開始するには、非常に便利なサイトです。

パッケージ名がわかったので、使用するバージョンを決定する必要があります。これは未完成のバンドルであるため、バージョンを使用して最新バージョンを使用できますdev-masterdev-masterしかし、バージョンが 用でSymfony2.2あり、 を使用する場合は別のバージョンを使用する必要がある可能性がありますSymfony2.1。これは README ファイル (Github または KnpBundles で表示できるパッケージ内) にある必要があります。README にない場合は、必要なバージョンを使用できます。バージョンに関するメモの例は、 StofDoctrineExtensionsBundle にあります。

これで、バンドルをcomposer.jsonファイルに追加し、依存関係を更新できます。これは手動で行うことができます:

  1. ファイルに追加しcomposer.jsonます。

    {
        ...,
        "require": {
            ...,
            "simplethings/entity-audit-bundle": "dev-master"
        }
    }
    
  2. 依存関係を更新する

    $ php composer.phar update simplethings/entity-audit-bundle
    

    またはすべての依存関係を更新します

    $ php composer.phar update
    

または、これを 1 つのコマンドで実行できます。

  1. このコマンドを実行します (これにより、パッケージが含まれ、パッケージがcomposer.json更新されます)。

    $ php composer.phar require simplethings/entity-audit-bundle:dev-master
    

これで、バンドルが Symfony プロジェクトにインストールされ ( vendor/simpletings/)、オートローダーがこのバンドルを認識します。ここで行う必要があるのは、バンドルを に登録することだけですAppKernel

// app/AppKernel.php

// ...
class AppKernel extends Kernel
{
    // ...

    public function registerBundles()
    {
        $bundles = array(
            ...,
            new SimpleThings\EntityAudit\SimpleThingsEntityAuditBundle(),
        );

        // ...
    }
}
于 2012-11-12T08:09:12.473 に答える