FlexiPeeHP ロゴ" title="プロジェクト ロゴ" style="max-width: 100%;">
チェコの会計システム FlexiBee と簡単に対話できる PHP ベースのライブラリ。
CZ: チェコの経済システム FlexiBee を簡単に操作するための PHP ライブラリ
❗ このライブラリは非推奨としてマークされます。軽量後継機 https://github.com/Spoje-NET/php-flexibee にご注目ください❗
このライブラリの作成は、LMS / FlexiBee の接続とウェアハウスのインポートのためのソリューションの開発費用を負担してくれた Spoje.Net の親切なサポートなしには不可能でした。 ?
また、私の必ずしも賢明とは言えない質問やバグ報告に辛抱強く対応してくださった ABRA Flexi s.r.o. のテクニカル サポートにも感謝いたします。
GDPR ログ記録を目的とした結果の解析は、<PureHTML> のサポートにより改良されました。
composer require spoje.net/ FlexiPeeHP
結果のcomposer.jsonが次のようになった場合:
{
"name" : " vendor/projectname " ,
"description" : " Test " ,
"type" : " project " ,
"require" : {
"spoje.net/ FlexiPeeHP " : " * "
},
"license" : " MIT " ,
"authors" : [
{
"name" : " Vítězslav Dvořák " ,
"email" : " [email protected] "
}
],
"minimum-stability" : " stable "
}
Composer installコマンドによりインストールが開始されます。
構成は、次の定数を設定することによって行われます。
/*
* URL Flexibee API
*/
define ( ' FLEXIBEE_URL ' , ' https://flexibee-dev.spoje.net:5434 ' );
/*
* Uživatel FlexiBee API
*/
define ( ' FLEXIBEE_LOGIN ' , ' apiuser ' );
/*
* Heslo FlexiBee API
*/
define ( ' FLEXIBEE_PASSWORD ' , ' apipass ' );
/*
* Společnost v FlexiBee
*/
define ( ' FLEXIBEE_COMPANY ' , ' test_s_r_o_ ' );
/*
* Nebo pokud nechceme používat jméno a heslo
*/
define ( ' FLEXIBEE_AUTHSESSID ' , ' 6QuifebMits ' ); //Volitelné
/*
* Pomalý server, velká databáze a přes modem k tomu
*/
define ( ' FLEXIBEE_TIMEOUT ' , 60 ); //Volitelné
または、クラスをインスタンス化するときに資格情報を指定できます。
$ invoicer = new FlexiPeeHP FakturaVydana ( null ,[
' company ' => ' Firma_s_r_o_ ' ,
' url ' => ' https://flexibee.firma.cz/ ' ,
' user ' => ' rest ' ,
' password ' => ' -dj3x21xaA_ '
]);
この設定方法は、上記で定義した定数よりも優先されます。
$ order = new FlexiPeeHP ObjednavkaPrijata( ' code:OBP0034/2019 ' ,[ ' companyUrl ' => $ _GET [ ' companyUrl ' ], ' authSessionId ' => $ _GET [ ' authSessionId ' ] ])
このようにして、 companyUrlとauthSessionId の値を渡すユーザー ボタンによって呼び出されたアプリケーションは、flexibee と具体的な注文に接続できます。
ライブラリ全体の中心的なコンポーネントは FlexiBeeRO クラスで、curl PHP 拡張機能を使用して FlexiBee REST API と通信できます。
次に、個々のレコードのクラスがそこから派生され、頻繁に使用される操作 (たとえば、請求書を受け取った場合の「支払い」など) のメソッドが含まれます。
新しい派生クラスは、クラス名がレコード名になるように、ハイフンを含まない方法で作成されます。これらは名前の大文字に置き換えられます。
function evidenceToClass ( $ evidence )
{
return str_replace ( ' ' , '' , ucwords ( str_replace ( ' - ' , ' ' , $ evidence )));
}
つまり「測定単位」レコードの新しいクラスを派生する場合は、次のようになります。
<?php
/**
* @link https://demo.flexibee.eu/c/demo/merna-jednotka/properties Vlastnosti evidence
*/
class MernaJednotka extends / FlexiPeeHP /FlexiBee
{
/**
* Evidence užitá objektem.
*
* @var string
*/
public $ evidence = ' merna-jednotka ' ;
}
そして、測定単位を 2 行に書くのは簡単です。
$ jednotky = new MernaJednotka ();
print_r ( $ jednotky -> getAllFromFlexiBee () );
新しく作成したクラスで flexibee に書き込みできるようにしたい場合は、祖先 FlexiBeeRW から派生させる必要があります。
さらなる使用例は別のプロジェクトで見つけることができます。
場合によっては、どのようなアクションを実行できるか、またはレコードの構造が何であるかを知っておくとよいでしょう。この情報は、https://demo.flexibee.eu/c/demo/*/properties.json または https://demo.flexibee.eu/c/demo/*/actions.json を呼び出すことで取得できますが、これは比較的時間のかかる操作。レコードとアクションの構造、または FlexiBee レコード間の関係は頻繁に変更されないため、 FlexiPeeHPには、サーバーにクエリを実行せずにこのデータを操作できるメカニズムがあります。
構造は、FlexiBee から取得する必要がある情報を含む静的に定義されたフィールドを含む Structure クラス (Actions,Relations) に保存されます。
証拠リスト https://demo.flexibee.eu/c/demo/evidence-list の項目はいつでも簡単に表示できます。
echo FlexiPeeHP Structure:: $ evidence [ ' faktura-vydana ' ];
個々のレコードの構造は静的変数に保存されます。これらの名前は、最初の文字が小文字であることを除いて、新しいクラス名を作成する場合と同じルールに従います。つまり:
lcfirst ( FlexiPeeHP FlexiBeeRO:: evidenceToClassName ( $ evidence ))
必要に応じて、次のコマンドを使用して、現在のコンテンツを使用してこれらのクラスを生成できます。
cd tools/
./update_all.sh
操作には数分かかります。次のように進行状況を表示できます。
tail -f /var/log/syslog | grep FlexiPeeHP test
FlexiPeeHPオブジェクトで $this->debug を true に設定すると、FlexiBee にデータを送信する前に追加のテストが実行されます。次の考えられるエラーがチェックされます。
デバッグ モードでは、すべての flexibee リクエストとその応答も /tmp フォルダに保存されます。
このライブラリには、FlexiBee ランタイム エラーを開発者に送信するためのメカニズムが含まれています。
FlexiBee が内部サーバー エラー 500 を返した場合、エラー メッセージを含む電子メールが開発者に送信されます。
同一サーバー上で動作するFlexiBeeを使用しており、エラーログが読み取れる場合は、エラーログから適切なフラグメントを抽出してメール本文に追加します。
この電子メールには、ライセンスと有効なモジュールに関する追加情報も含まれています。
また、サーバーへのリクエストの本文、その応答の本文、およびcurlに関する情報を含むファイルが添付ファイルとして添付されます。
オブジェクトの存続期間中、エラーはログに記録され、各タイプの最初のエラーのみが送信されます。
PHPUnit テストはtestingフォルダーにあります。公式 http://demo.flexibee.eu/ 以外のサーバーに対してテストする場合は、 bootstrap.phpファイルの設定を変更する必要があります。
$testServer 変数の内容によって、どのデフォルト設定が使用されるかが決まります。もちろん、独自に定義することもできます。例として、spoje.net テスト サーバーをここに示します。
テストを行う場合は、まずテスト会社TESTING s.r.o.を作成し、REST APIの使用を許可されたユーザーのアクセスデータを設定してください。 (これは、FlexiBee のインストール時に入力した管理者ユーザーです。)
警告: 大量の請求書を発行する企業や接続された銀行に対するテストには、自動ドキュメント照合呼び出しもテストされるため、時間がかかる場合があります。
プロジェクトでFlexiPeeHP継承し、同様にFlexiPeeHPから継承されたこれらのクラスのテストを作成する場合は、次のようになります。
クラス HookRecieverTest extends Test FlexiPeeHP ChangesTest
また、元のテストへのパスをcomposer.jsonに追加します。
"autoload-dev": {
"psr-4": {
"Test\": "vendor/spoje.net/ FlexiPeeHP /testing/src/ FlexiPeeHP /testing/",
"Test\Ease\": "vendor/vitexsoftware/ease-framework/tests/src/Ease",
"Test\ FlexiPeeHP \": "vendor/spoje.net/ FlexiPeeHP /testing/src/ FlexiPeeHP /",
}
}
Examples フォルダーには、次の使用例があります。
ファイル | 説明 |
---|---|
AttachmentSaveToFile.php | 添付ファイルをファイルに保存する |
AttachmentUpload.php | 添付ファイルをアップロードする |
AuthSessionIdUsage.php | AuthSessionId 認証サンプル |
AuthenticateContact.php | 接触認証 |
バッチオペレーション.php | バッチ操作でのフィルターの使用 |
CreateLabel.php | ラベルを操作する |
ドライラン.php | テスト保管(ドライラン) |
ダウンロードInvoicePDF.php | PDF請求書のダウンロード |
エラー404.php | 存在しないレコードを操作する |
FindOverdueInvoices.php | 期限を過ぎた請求書を見つける |
GetRecordWithRelation.php | 引落しデータを含む記録の取得 |
GetBankAccountForCompany.php | ディレクトリから会社の銀行口座を取得する |
InvoiceLockUnlock.php | レコードのロックとロック解除 |
InvoiceCopy.php | 前払い金から税務書類を作成する |
ログインログアウト | ユーザーのログインとログアウト |
NajdiDanovyDokladKzalohovemu.php | 文書の追跡 |
ストレージ.php | シリアル番号付き在庫品 |
NewInvoice.php | 期限が JSON で記述された新しい請求書 |
オブジェクトチェーン.php | キュー内の複数の操作のみに対するオブジェクトのチェーン化 |
オブジェクト協力.php | オブジェクト間でのデータと接続パラメータの共有 |
PerformingActions.php | アクション ドキュメントでアクションを実行する方法。例えばキャンセル |
ReadAddressColumns.php | 特定の列を返す |
sendInvoiceByMail.php | 請求書を電子メールで送信する |
SendReminders.php | リマインダーの送信 |
SetContactAuth.php | 認証設定 |
テスト接続.php | 接続チェック |
docker pull vitexsoftware/ FlexiPeeHP
Linux で使用できる .deb パッケージがあります。リポジトリを使用してください:
wget -O - http://v.s.cz/[email protected]|sudo apt-key add -
echo deb http://v.s.cz/ stable main > /etc/apt/sources.list.d/ease.list
aptitude update
aptitude install FlexiPeeHP
この場合、アプリケーションのcomposer.jsonファイルに以下を追加する必要があります。
"require" : {
"spojenet_ FlexiPeeHP " : " * " ,
"vitexsoftware_ease-framework" : " * "
},
"repositories" : [
{
"type" : " path " ,
"url" : " /usr/share/php/ FlexiPeeHP " ,
"options" : {
"symlink" : true
}
},
{
"type" : " path " ,
"url" : " /usr/share/php/Ease " ,
"options" : {
"symlink" : true
}
}
]
したがって、依存関係をインストールすると、次のようになります。
Loading composer repositories with package information
Installing dependencies from lock file
- Installing vitexsoftware_ease-framework (1.1.3.3)
Symlinked from /usr/share/php/Ease
- Installing spojenet_ FlexiPeeHP (0.2.1)
Symlinked from /usr/share/php/ FlexiPeeHP
そしてapt-get経由でシステム全体をグローバルにアップデートできるようになります。
また、ApiGen プログラムを使用して生成された開発者ドキュメントを含むFlexiPeeHP -docパッケージも生成します。ドキュメントはオンライン http://flexibee-dev.spoje.net/FlexiPeeHP/ で参照できます。
テスト:
cd /usr/share/doc/ FlexiPeeHP /
composer install
php -f flexibeeping.php
make deb を実行して Debian パッケージを作成します
Docker のイメージ:
docker build -t vitexsoftware/ FlexiPeeHP
wakaTime プロジェクトの作業統計