symfony:開始方法

仕事で最初のプロジェクトに取り組むほど、それを変えたいと思うようになり、仕事を始める前に「 Symfonyの決定版ガイド」を読んでおらず、 Symfonyの プラグインを勉強しなかったことを後悔しています。 それらの多くは、開発時間を大幅に短縮するのに役立ち、最も重要なことは、これらまたはそれらのものを美しく実装する方法を考えないことです...もう1つのこと-あなたがすでにシステムの一部を持っている場合(私が持っているように)フレームワークを使用して書き換える場合(またはコードが気に入らないため、単に書き換える場合)-私のアドバイスは、 このシステムを新しいシステムの計画に合わせて設計することです。すぐにすべてを書き換えようとせずにso)、分析後(これは、 可能性のある、オーバーになる可能性がシステムの以前のアーキテクチャから、より一日、あるいは1週間)よりも行くことができます。

一般に、私はこれらまたはシステムに実装したいソリューションを設計、熟考、分析するのが好きです(ただし、私はこれにはほとんど経験がありませんが)、あなたが考えて1日過ごしたことを顧客に説明する方法...えー...

気が散ります 今日は、Symfonyを使用してシステムを開発する際の開始点と、従うべきルールについてお話したいと思います。



実際、すべてはプロジェクト(プロジェクト)とその中のアプリケーション(アプリケーション)の作成から始まります。 これがどのように行われるかは本で読むことができます(上記のリンクを参照)が、プロジェクトとは何か、プロジェクト内のアプリケーションを選択するための原則-彼らが与えるべき名前、それらを構成する方法などについて説明したいと思います。

プロジェクト



私が理解しているように、一般的な場合、サイト全体に1つのプロジェクトがあり、このプロジェクトのすべてのアプリケーションが使用するアプリケーション、構成ファイル、およびモデルの一種のリポジトリになると想定されています。

用途



Djangoとは異なり、ここではアプリケーションは他のプロジェクトで使用できるシステムの原子単位ではありません... Symfonyでは、プロジェクトの機能を論理的に(物理的に)区別するためにのみ作成されました。 そして最も重要なこと-アプリケーションは、1つのプロジェクトのフレームワーク内にのみ存在する場所を持っています。 つまり プロジェクト内の1つのアプリケーションを削除しても、他のアプリケーションは影響を受けませんが、プロジェクトの設定やプロジェクトモデルなどに依存するため、あるプロジェクトから別のアプリケーションへの転送には非常に問題があります。

プロジェクトでフロントエンドとバックエンドの2つのアプリケーションを作成することが公式に推奨されている(「提案済み」と読む)と言うと便利です(ロシア語を話す視聴者にとっては、この場合の「管理者」という用語の方が適切です)。 私自身は、1つの目標を設定するモジュールを組み合わせるためだけにアプリケーションを作成することをお勧めします。 たとえば、同じ管理パネル、ユーザーインターフェイス(たとえば、ユーザープロファイル、ユーザーがサイトで変更できるすべてのもの)、フロントエンド(すべてのユーザーがアクセスできるすべてのもの)。

私自身は本の推奨事項を使用し、私のプロジェクトには2つのアプリケーションがあります。



このアプローチの長所と短所を検討したくありません。 私にとっては、Djangoのアプローチのほうがはるかに便利で論理的であり、初心者向けのこれらのプロジェクト/アプリケーションはかなり複雑で理解しにくいとしか言​​えません。 特にSymfonyのプラグインは基本的に同じDjangoアプリであると考えていますが、それについては後ほど説明します。

環境



私は特に周囲に住みたいとは思いません。 これは非常に便利ですが、同時に非常に単純なメカニズムであり、異なるサーバー設定で同じアプリケーションにログインする機能を提供します。 簡単に言えば、アプリケーションと、動作モードをデバッグモードに、またはその逆に切り替えるチェックマークがあると想像してください。 たとえば、デバッグモードでは、すべてのイベントが記録され、すべてのエラーが画面に表示されます。 デバッグモードがオフになっている場合、すべてのログがオフになり、画面にエラーが表示されなくなります。 そのため、Symfonyでは、デバッグ/ 非デバッグフラグの代わりに、それぞれが完全に構成できるいくつかの異なる環境があります。つまり、システムは何をオンにして何をオフにするか、そしてあなた自身を決定しません。 また、設定を詳しく調べる必要はありません。デフォルトでは、アプリケーションごとに3つの環境が作成されます:本番、開発、テスト(テスト中のみに使用)。

一般的に、文句を言う必要はありません-私の意見では、すべてが完璧です。

モジュール



...アクションとビュー( MVCの MVなど)を備えたコントローラー、およびこの特定のモジュールでのみ必要な構成ファイルと、場合によってはライブラリーが含まれます。 ここではすべてが非常にシンプルで明確です。



モジュール(プロジェクトを備えたアプリケーションなど)は自動的に作成できます(コマンドラインを使用)。 単純なモジュールの作成に加えて、テーブルの1つ、または管理パネル(再び、テーブルの1つ)に対して(再び-自動的に) CRUDスキャフォールディング )を作成できます。 管理パネルは、コードを実際に書く必要がないという点で異なります-その中のほとんどすべて(フィルタリング、ソートなど)は、非常に便利な設定ファイルを使用して設定されます(ジャングラーにとってはこんにちは、彼らは理解します)。 CRUDは、開発の初期段階で非常に役立ちます。 例-ユーザーテーブルを追加したので、次を行う必要があります。ユーザーのリストを表示し、ユーザーにプロファイルの編集と登録を許可します。 最初からすべてを作成する代わりに、ユーザーテーブル用のCRUDモジュールを作成します。その後、既に生成されたコードに基づいて独自のコードの作成を開始できます。 このようなソリューションの暗黙的な利点は、モジュールのコードが互いに類似して取得され、混乱が少ないことです。

最後に説明したいのは...

モデル



すべてのモデルは、1つ(または複数)のYAMLファイルに保存されます。 3〜4日でモデルの作成に慣れます。 YAMLから、1つのコマンドを持つモデルは、自動生成されたベースORMクラス( PropelまたはDoctrine )に変換されます。 すべてが高速、シンプル、そしてすっきりしています。



多分これは、Symfonyを勉強するときに初心者が必要とするかもしれないことのすべてです(そのため、1年前に私に思われた、 ある種の複雑で不可解なシステム彼には見えません)。

そして今、私たちの推奨事項に直接進みます。 しかし、その前に私はあなたについて教えます...

プラグイン



プラグインは、実際には、さまざまなプロジェクトやアプリケーションで何度も使用できるコードです。 プラグインには以下が含まれます。



私は間違っているかもしれませんが、プラグインはそのようなミニプロジェクトであり、Symfonyアプリケーションと比較して「すべてがそれ自体」であるように思えます。 私の意見では、賭けは主にそれらに行われるべきです-アプリケーションを削除し、代わりにプラグインをインストールし、これらのプラグインが相互に通信できるようにする何らかのツールを作成します。

私の推薦







関連リンク







今日はこれでおそらくすべてです。 あなたのコメントを待っています。



私のブログのクロスポスト。



All Articles