現場のFuelphp

あなた、おびただしい人々、興味のある方への挨拶。 この投稿を書くのは時間の問題だったので、延期せずに今すぐ書くことにしました。 以前にFuelphpの機能の説明を公開しました。 当時、私はロシアのドキュメントサイト、グループを作成し、このフリーマークにいくつかのテストアプリケーションを作成しました。



この記事では、実際のプロジェクトでこのツールを使用した経験を共有したいと思います。 リモート管理パネルを作成し、APIを介してクライアントサイトの管理を実装する必要がありました。 要件:モジュール性、負荷の最適化、Youtube APIの使用、CNC。



次に、特定のタスクを示しますが、反対に、使用されたツールと効率を説明します。



1. vkおよびfacebookソーシャルネットワークを含むユーザー認証:Auth + oAuth + oAuth2:不足している2つのパッケージをオイルでインストールし、設定で接続し、オイルで移行を開始し、必要なプレートをデータベースに作成しました。 すべてが時計のように機能し、vkドライバはありませんでした。10分で書きました。



2.テンプレートの構成:テンプレートエンジンから最適化を支持して拒否されました。 テンプレートをよりよく整理する方法については、2つのアイデアがありました。 1つ目は、ベースコントローラーで「ウィジェット」を定義し、それから継承することでした。 2つ目は、「ウィジェット」を個別のモジュールとして実装し、HMVCリクエストを使用してそれらを挿入することです。 最初の方法は、すべての「ウィジェット」が何らかの形でデータベースのデータと同じものを必要としたため、よりシンプルで簡潔なソリューションのように思えました。 さらに、このデータは、1つの大きなキャッシュリクエストで収集できます。 どのように適切な決定を下したかはわかりませんが、これまでのところ何の問題も発生しておらず、クエリキャッシングによって速度がほぼ10倍に向上しました。



3.キリル文字CNC:5分間、非常に高速です。 urlencode()-urldecode()



4.サイトマップの生成:標準パッケージには見つかりませんでした。 ここで、パッケージの魅力がすべて明らかになります(package-package)。 適切なクラスを見つけたGoogleのサイトマップgen phpのようなものをヒットしました。5分後、すでにfuelsitemapパッケージがありました。 燃料でパッケージを作成するのは簡単です。少なくとも1回行う価値があり、停止することはすでに不可能です。



5.管理パネルの実装:ここでは、バックエンドが同じであるため、速度を優先することが決定されました)extjs4は、開発の速度と信頼性を期待して選択されました。 ネイティブとして燃料と再会。 ただし、extJs4はもう使用しません。 これは3メートルのツールボックスであり、すべてを行うことができます。常に作業を続けると、時間を節約でき、最終的に何がどこにあるかを覚えることができます。 これには更新も含まれます。これは多くの場合、下位互換性を損なう可能性があり、その内部に精通していないextjsをときどき使用するとどうなるか想像してください。 1人または2人がUIで忙しいスタジオに適したソリューションです。



6.管理API:Fuelphpにはいくつかのコントローラーがあります;これはController_Templateテンプレートを実装するための通常のコントローラーです(基本テンプレートは$テンプレート変数を介して割り当てられます)。 xml、json、serializeなどの形式を返すには、Controller_RestまたはController_Hibryd(Controller_Template + Controller_Rest)を使用します。 そして、他の場所で何かを規定する必要はなく、単に.jsonや.serializeなどに置き換えてください。 メソッドを呼び出すと、それ自体がデータを目的の形式に変換し、メソッド内でデータは配列として定義されます。



6.1セキュリティAPI:次に、データ転送中のセキュリティ対策について質問がありました。 まず、キーによるデータ暗号化を使用することが決定され、次に、リクエストメソッドをgetからpostに変更します。 第三に、データ自体とサーバーヘッダーで送信されたパスワードによるアクセスを入力します。もちろん、キーで暗号化されています。

fuelphpの暗号化は暗号化に使用されましたが、データとヘッダーの転送にはCURLを使用したかったのです。 スキームは標準のグーグル->適切なラッパーの選択->パッケージの作成->使用。



7. Youtube APIの使用:以前に作成したfuelcurlパッケージがここで役立ちました(私が呼んだように)このタスクは、次のプロジェクトで役立つ可能性のある大部分のロジックに含まれていたため、コントローラーのメソッドでこのソリューションを「縫い付け」たくありませんでした。 そして、次のプロジェクトでこの機能を簡単かつ自然に使用できるように、別のパッケージfuelyoutubeが作成されました。



8.最適化:

サーバー

-nginx。

コード

-標準機能は個々のデータベースクエリをキャッシュします。

-API Yotube-APIへのリクエストが1回発生し、データベースからキャッシュとして取得されます。

-ファイルキャッシュを接続しました。

少なくともこの段階では、これらの手段を使用すれば十分だと思われました。 これは負荷の最適化の限界にはほど遠いことを理解していますが。



開発を完了するのに2週間かかりました。



注:

-柔軟なアプリケーションで、ほとんどすべての小さな再利用可能なロジックが個別のパッケージに転送され、次のプロジェクトで再利用できるようになりました。 パッケージはプロジェクト間で永続的かつ移植可能なものです。 あなたは一度それを行うと、解決策はどこにも消えません-これは本当に素晴らしいです。

-コントローラー自体は、チェックと直接的なアクションのみを実行します。

-パッケージの大きな利点は、テンプレート内、コントローラー内、モジュール内のどこでもロジックを再利用できることです。

-フリーワークを使用している間ずっと、カーネルを数回更新しました-下位互換性は壊れず、更新はコアフォルダーを置き換えてコピーアンドペーストしました。

-燃料は必要に応じて簡単です。たとえば、ユニットテスト、オイルコンソール、開発の開発と生産への分離、オイルの移行などを使用します。 しかし、私は一つのことを知っています-Fuelphpには複雑なものは何もないので、それらが必要になったら簡単に使い始めます。



それがすべて、すべての成功と計画の迅速な実施です。



Offsite FuelPHP-fuelphp.com

githubのFuelPHP-github.com/fuel

GitHubでCMSをテストする-github.com/samitrimal/mod-cms

チートシート-www.novius-os.org/fuelphp-cheatsheet/index.htm?utm_source=novli&utm_medium=novli&utm_campaign=fuelphp-cheatsheet

ロシア語のドキュメント-fuelphp-framework.ru

vk.comのコミュニティ-vk.com/fuelphp



All Articles