Ext.Directについて一言

序文の代わりに


私は長い間有用なものを公開したいと思っていましたが、ついにExt.Directについて話すことにしました。 このトピックに関するロシア語の多かれ少なかれ単一の記事を見たことはありません。誰もそれを必要としないか、2つのうちの1つです。

Ext.Directとは何ですか?

Ext.Directはextjs 3.0以降に存在します。 これは、サーバーとクライアント間のより緊密な相互作用を可能にするパッケージです。 バージョン2.0以降を思い出して、「直接」を見逃したことを理解しています。

クライアント側


Ext.Direct機能は、それぞれExt.dataパッケージ( DirectStoreDirectProxy )のクラスに実装され、 DirectStoreリーダーとしてJsonReaderを使用します。 Ext.directパッケージもあります。特に、 PollingProviderクラスは、指定された間隔でサーバーの定期的なポーリングを実装します。 さて、そしてExt.Directについては、以下で渡すことと、Ext.Direct.Transaction、直接呼び出されないヘルパークラスについてです。

Storeから始めましょう。 理解する必要がある人、理解していない人、必要としない人には、それが何であるかを説明しません。
最も簡単なオプションは、リモートメソッドをデータソースとして指定し、 directFnをパラメーターとして指定することです。

画像

ただ? そうそう! 最初の数日間、私はただとした。 ただし、このメソッドはいわゆるCRUD (作成、読み取り、更新、削除)を実装していないため、突然情報を受信するだけでなく、削除または更新する必要がある場合は、 apiパラメーターを使用できます。
このようなもの:

画像

さらに、リモート関数は直接呼び出すことができます:

画像

うーん...他に... ...ここで、たとえば、エラー処理:

画像

サーバー側では、例外を呼び出すだけです

Throw new Exception(', !');

そして、ハンドラーによってインターセプトされます。 まあ、一般的に、あなたは何でも傍受できます。 ドキュメントにはその方法が記載されています。

サーバー側


現時点では、サーバー側には多くの実装があります。完全なリストはこちらにあります
PHPについては、さまざまなフレームワークだけでなく、純粋なPHPの実装もあります。 とりあえず、トミー・マインツによって書かれた実装を使った経験があります。 詳細はこちらをご覧ください

パッケージは3つのクラスで構成されています。


動作させるために必要なこと:
  1. ダウンロードして解凍する
  2. そして、それだけです、あなたはそれを使うことができます。


API-クライアント側、 ルーター -サーバー用にそれぞれ設計されています。 まあ、彼はアフリカのCacheProviderでもあります。CacheProviderは、解析されたPHPクラスをキャッシュに保存するために使用されます。これについては後で理解します。

api.php
画像

最後に、このようにapi.phpを含めます

router.php 、Ext.Directのサーバー側へのアクセスポイント
画像

ユーザークラスに直接。 この実装の興味深い詳細は、リモートメソッドが最初にクラスにカプセル化され、次にメソッドのコメントを操作した後に利用可能になることです。 著者は、PHPクラスを解析し、ファイルからコメントを取得するのが正しいことを決定しました。(IMHO)もちろん、完璧な人です...ところで、明らかにキャッシュも必要です。

File.php
画像

Orders.php
画像

Test.php
画像

ちなみに、関数パラメーターの数は、一部のパラメーターがdefault = nullであっても、渡されたパラメーターの数に対応する必要があります

PSすべてをより詳細に説明することは確かに可能ですが、その場合は1日以上かかり、時間が制限されます(なぜロシア語でこれ以上広範囲なレビューがないのかは明らかです)。 誰が本当にそれを必要としているのか、ただ始めればすべてがスムーズに進みます。 ご覧いただきありがとうございます!

参照:


ExtJsドキュメントdev.sencha.com/deploy/dev/docs
Ext.Directの概要www.sencha.com/blog/2009/05/13/introducing-ext-direct
Ext.Direct仕様www.sencha.com/products/js/direct.php
ExtJのサーバー側の実装(リスト) www.sencha.com/forum/showthread.php?67992-Ext.Direct-Server-side-Stacks
Tommy Maintzによる PHPの実装www.sencha.com/forum/showthread.php?68186-Alternative-Ext-Direct-PHP-Implementation

Source: https://habr.com/ru/post/J105651/


All Articles