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 "
}
작곡가 설치 명령은 설치를 시작합니다:
구성은 다음 상수를 설정하여 수행됩니다.
/*
* 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 및 구체적인 주문에 연결할 수 있습니다.
전체 라이브러리의 중심 구성 요소는 컬 PHP 확장을 사용하여 FlexiBee REST API와 통신할 수 있는 FlexiBeeRO 클래스입니다.
그런 다음 개별 레코드에 대한 클래스가 여기에서 파생되며, 여기에는 자주 사용되는 작업(예: 수신된 청구서의 경우 "지불")에 대한 메서드가 포함됩니다.
새로운 파생 클래스는 클래스 이름이 레코드 이름과 같지만 하이픈이 없는 방식으로 생성됩니다. 이는 이름의 대문자로 대체됩니다.
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 ' ;
}
그런 다음 두 줄에 측정 단위를 쉽게 작성할 수 있습니다.
$ 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를 사용하고 오류 로그를 읽을 수 있는 경우 해당 조각에서 적절한 조각이 추출되어 메일 본문에 추가됩니다.
이메일에는 라이센스 및 활성화된 모듈에 대한 추가 정보도 포함되어 있습니다.
또한 서버에 대한 요청 본문, 응답 본문 및 컬에 대한 정보가 포함된 파일이 첨부 파일로 첨부됩니다.
객체의 수명 동안 오류가 기록되고 각 유형의 첫 번째 오류만 전송됩니다.
PHPUnit 테스트는 테스트 폴더에 있습니다. 공식 http://demo.flexibee.eu/ 이외의 서버에 대해 테스트하려면 bootstrap.php 파일에서 설정을 변경해야 합니다.
$testServer 변수의 내용에 따라 사용할 기본 설정이 결정됩니다. 물론 자신만의 정의를 내릴 수도 있습니다. 예를 들어 spoje.net 테스트 서버가 여기에 표시됩니다.
테스트를 위해서는 먼저 테스트 회사 TESTING s.r.o를 생성하고 REST API를 사용할 수 있는 권한이 있는 사용자의 접속 데이터를 설정하시기 바랍니다. (FlexiBee를 설치할 때 지정한 관리자 사용자입니다.)
경고: 청구서가 많은 회사 및 연결된 은행을 대상으로 테스트하는 경우 자동 문서 일치 호출도 테스트되므로 시간이 걸릴 수 있습니다.
프로젝트에서 FlexiPeeHP 상속하기로 결정하고 FlexiPeeHP 에서도 상속된 이러한 클래스에 대한 테스트를 작성하는 경우:
HookRecieverTest 클래스는 Test FlexiPeeHP ChangesTest를 확장합니다.
또한 원래 테스트의 경로를 작곡가.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 /",
}
}
예제 폴더에는 다음 사용 예제가 있습니다.
파일 | 설명 |
---|---|
AttachmentSaveToFile.php | 첨부 파일을 파일에 저장 |
첨부파일업로드.php | 첨부파일 업로드 |
AuthSessionIdUsage.php | AuthSessionId 인증 샘플 |
AuthenticateContact.php | 연락처 인증 |
BatchOperation.php | 일괄 작업에서 필터 사용 |
CreateLabel.php | 라벨 작업 |
DryRun.php | 테스트 스토리지(테스트 실행) |
송장PDF.php 다운로드 | PDF 송장 다운로드 |
오류404.php | 존재하지 않는 레코드로 작업 |
FindOverdueInvoices.php | 연체 송장 찾기 |
GetRecordWithRelation.php | 하위 차변에서 데이터를 포함하는 기록 얻기 |
GetBankAccountForCompany.php | 디렉토리에서 회사의 은행 계좌 얻기 |
InvoiceLockUnlock.php | 기록 잠금 및 잠금 해제 |
InvoiceCopy.php | 선지급으로 세금 문서 생성 |
로그인로그아웃 | 사용자 로그인 및 로그아웃 |
NajdiDanovyDokladKzalohovemu.php | 문서 추적 |
Storage.php | 일련번호가 있는 재고 제품 |
새로운Invoice.php | 만기일이 json으로 작성된 새 송장 |
ObjectChaining.php | 대기열에서만 여러 작업을 위한 개체 연결 |
객체협력.php | 객체 간 데이터 및 연결 매개변수 공유 |
PerformingActions.php | 작업 문서에 작업을 수행하는 방법. 예를 들어 해제 |
ReadAddressColumns.php | 특정 열을 반환 |
sendInvoiceByMail.php | 이메일로 청구서 보내기 |
SendReminders.php | 알림 보내기 |
SetContactAuth.php | 인증 설정 |
TestConnection.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
이 경우 애플리케이션의 작곡가.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를 실행하여 데비안 패키지를 만듭니다.
도커 이미지:
docker build -t vitexsoftware/ FlexiPeeHP
WakaTime 프로젝트의 작업 통계