2011-11-15 11 views
6

私はSymfony2の初心者です。私は自分のカスタムプロジェクト間関数(例えば、array_merge_overwritearray_last、など)に含めるべき箇所を理解できませんか?私はweb(MVC)とconsole(extend ContainerAwareCommand)の両方のタイプのアプリを使用しています。ユーザカスタム関数を組み込むsymfony2のベストプラクティス

これには別の「正しい方法」がありますか?

+1

似たような質問[Symfony2 global functions](http://stackoverflow.com/questions/10336401/symfony2-global-functions) –

答えて

7

serviceを作成し、共通の機能を追加してください。たとえば、ArrayServiceという名前を付けて、コンテナ内にarray.serviceという名前で登録できます。あなたは同じ機能が必要な場合

$element = $this->get('array.service')->last($array); // or ->arrayLast($array) 

:あなたがそのように

$this->getContainer()->get('array.service'); 

経由

$this->get('array.service'); 

とコマンドから経由してコントローラからこのサービスにアクセスすることができ、あなたのコードは次のようになりますそのサービスとバンドルを作り、それを各プロジェクトのdepsファイルに追加します。その後、bin/vendors installスクリプトを実行するとインストールされます。

0

関数をいくつかのクラスの静的メソッドに変換して、オートロード可能にすることができます。または...よく...あなたがどこにいても必要な場所に置いてください。

+0

私が正しく理解していれば、Symfonyは問題の解決法を提供しません。私は**必要な**すべての方法/スクリプトを使用する必要があります。私はSymfonyを使用します。 – MingalevME

+0

@MingalevMEはい、2011年に手続き型プログラミングを続けている場合は、OOPに切り替えてみてください。 –

関連する問題