Symfony 2のグッドプラクティス(個人的な経験から)

こんにちは、ハブラフチアン。 今日、 「Symfonyのベストプラクティスの公式ガイド」というハブに関する記事を見て、 修正するために追加するものがあることに気付きました。 あなたの注意に個人的なアドバイスのリストとそれらへの説明。



アノテーションの使用を減らす



個人的には注釈が大好きですが、経験を積むと不快感を感じることがわかりました。 実際、設定全体を注釈に転送することはできません。 次の2つのオプションがあります。







2番目のオプションを選択すると、プロジェクトの成長とともにおが得られます。 また、コードにはロジックよりも多くの注釈があります。 「ルートを見つけやすい」というタイプの言い訳は受け入れられません。 構成ファイルを正しく配布すれば、特定のコントローラーへのルートがどこにあるかを常に把握できます。 route:debugや、アクションの名前とルートの名前を表示するデバッガーなど、コンソールのコマンドについてはすでに説明していません。



悪い例(私は):







マネージャーとリポジトリーを別々のフォルダーに移動する



現在のプロジェクトで取り決められているように、すぐに悪い例を挙げます。







すべてのマネージャークラスは、マネージャーフォルダーのリポジトリリポジトリクラスに存在する必要があります。 これが行われない場合、マネージャーとリポジトリーを備えた5〜10個のエンティティーの出現により、人生は「もっと楽しく」なります。





テンプレートでは、常にJavaScriptとスタイルでブロックを定義します



すべてがシンプルです。 個別のページでは、必要なjavascriptとスタイルのみをいつでもオーバーライドおよびロードできます。 また、最も基本的なテンプレートでは、これらのブロックを空のままにすることをお勧めします。 そして、メインlayout.html.twigを作成してそれらを埋めるバンドル。



AppBundle / Resourcesに保存されているバンドル構成



プロジェクトが小さい場合でも、最初はapp / configではなくAppBundle / Resources /にバンドル構成を保存することに慣れます。 アプリ内/リンクのみ。 これは主にルーティングとサービスに関するものです。



構成ファイルに記述されているエンティティ



エンティティは、たとえばAppBundle / Resources / config / doctrine / Entity.orm.ymlなどの構成で最もよく説明され、それ自体がエンティティクラスを生成するdoctrine:generate:entitiesコマンドを使用して生成されます。 エンティティ構成がファイル内にある場合、クラス自体はよりきれいに見えます。 また、エラーがないことも確認できます。



テストのために、別個のデータベースを作成します



parameters.testファイルで、フィクスチャをロードするテストベースのパラメーターを指定します。 したがって、同じデータをテストしていることを常に確認できます。 おそらくすべてがそれを行っているだけで、現在のプロジェクトでは、そのような実践の欠如に出くわしました。



もちろん、これらはすべてありふれたものですが、そうしない人もいますし、彼らのために書いたmar教者はこのために苦しみます。



誰かがコメントで彼らのアドバイスを書いてくれたら嬉しいです。



追加者






All Articles