โลโก้ FlexiPeeHP" title="โลโก้โครงการ" style="max-width: 100%;">
ไลบรารี่ที่ใช้ PHP เพื่อการโต้ตอบที่ง่ายดายกับระบบบัญชีเช็ก FlexiBee
CZ: PHP Library เพื่อการทำงานที่ง่ายดายกับระบบเศรษฐกิจเช็ก FlexiBee
❗ ห้องสมุดนี้จะถูกทำเครื่องหมายว่าล้าสมัย โปรดใส่ใจกับผู้สืบทอดที่มีน้ำหนักเบา https://github.com/Spoje-NET/php-flexibee ❗
การสร้างไลบรารีนี้จะเป็นไปไม่ได้หากไม่ได้รับการสนับสนุนจาก Spoje.Net ซึ่งจ่ายเงินสำหรับการพัฒนาโซลูชันสำหรับการเชื่อมต่อ LMS / FlexiBee และการนำเข้าคลังสินค้า -
ฉันขอขอบคุณการสนับสนุนทางเทคนิคของ 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 และคำสั่งที่เป็นรูปธรรม
องค์ประกอบหลักของไลบรารีทั้งหมดคือคลาส FlexiBeeRO ซึ่งสามารถสื่อสารกับ FlexiBee REST API ได้โดยใช้ส่วนขยาย curl PHP
จากนั้นคลาสสำหรับบันทึกแต่ละรายการจะได้รับมาจากคลาสนั้น ซึ่งมีวิธีการสำหรับการดำเนินการที่ใช้บ่อย เช่น "ชำระเงิน" ในกรณีที่ได้รับใบแจ้งหนี้
คลาสที่ได้รับใหม่จะถูกสร้างขึ้นในลักษณะที่ชื่อของคลาสเป็นชื่อของเรกคอร์ด แต่ไม่มียัติภังค์ เหล่านี้จะถูกแทนที่ด้วยอักษรตัวใหญ่ในชื่อ
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
รายการในรายการหลักฐาน 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
หากคุณตั้งค่า $this->debug เป็นจริงในออบเจ็กต์ FlexiPeeHP การทดสอบเพิ่มเติมจะดำเนินการก่อนที่จะส่งข้อมูลไปยัง FlexiBee มีการตรวจสอบข้อผิดพลาดที่เป็นไปได้ต่อไปนี้:
ในโหมดดีบัก คำร้องขอ flexibee ทั้งหมดและการตอบกลับจะถูกบันทึกลงในโฟลเดอร์ /tmp ด้วย
ไลบรารีมีกลไกในการส่งข้อผิดพลาดรันไทม์ FlexiBee ไปยังนักพัฒนา:
หาก FlexiBee ส่งคืน Internal Server Error 500 อีเมลที่มีข้อความแสดงข้อผิดพลาดจะถูกส่งไปยังนักพัฒนา
หากใช้ FlexiBee ที่ทำงานบนเซิร์ฟเวอร์เดียวกันและสามารถอ่านบันทึกข้อผิดพลาดได้ ระบบจะแยกส่วนที่เหมาะสมออกจากบันทึกเหล่านั้นและเพิ่มลงในเนื้อหาของเมล
อีเมลยังมีข้อมูลเพิ่มเติมเกี่ยวกับใบอนุญาตและโมดูลที่เปิดใช้งาน
นอกจากนี้ยังแนบเป็นไฟล์แนบด้วยคือไฟล์ที่มีเนื้อหาของคำขอไปยังเซิร์ฟเวอร์ เนื้อความของการตอบกลับ และไฟล์ที่มีข้อมูลเกี่ยวกับ curl
ในช่วงอายุการใช้งานของออบเจ็กต์ ข้อผิดพลาดจะถูกบันทึกและส่งเฉพาะรายการแรกของแต่ละประเภทเท่านั้น
การทดสอบ PHPUnit อยู่ในโฟลเดอร์ การทดสอบ หากคุณต้องการทดสอบกับเซิร์ฟเวอร์อื่นที่ไม่ใช่ http://demo.flexibee.eu/ อย่างเป็นทางการ คุณจะต้องเปลี่ยนการตั้งค่าในไฟล์ bootstrap.php
เนื้อหาของตัวแปร $testServer จะกำหนดว่าการตั้งค่าเริ่มต้นใดที่จะใช้ และแน่นอนคุณสามารถกำหนดของคุณเองได้ ตามตัวอย่าง เซิร์ฟเวอร์ทดสอบ spoje.net จะแสดงที่นี่
สำหรับการทดสอบ โปรดสร้างบริษัททดสอบ TESTING s.r.o. และตั้งค่าข้อมูลการเข้าถึงของผู้ใช้ที่ได้รับอนุญาตให้ใช้ REST API (ซึ่งเป็นผู้ใช้ที่เป็นผู้ดูแลระบบที่ระบุเมื่อติดตั้ง FlexiBee)
คำเตือน: การทดสอบกับบริษัทที่มีใบแจ้งหนี้จำนวนมากและธนาคารที่เชื่อมต่ออยู่อาจใช้เวลาสักครู่ เนื่องจากมีการทดสอบการเรียกจับคู่เอกสารอัตโนมัติด้วย
หากคุณตัดสินใจที่จะสืบทอด FlexiPeeHP ในโปรเจ็กต์ของคุณและเขียนการทดสอบสำหรับคลาสเหล่านี้ที่สืบทอดมาจาก FlexiPeeHP ด้วย เช่น:
คลาส HookRecieverTest ขยาย 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 /",
}
}
ในโฟลเดอร์ตัวอย่างคือตัวอย่างการใช้งานต่อไปนี้:
ไฟล์ | คำอธิบาย |
---|---|
ไฟล์แนบSaveToFile.php | บันทึกสิ่งที่แนบมาลงในไฟล์ |
AttachmentUpload.php | อัพโหลดไฟล์แนบ |
AuthSessionIdUsage.php | ตัวอย่างการรับรองความถูกต้อง AuthSessionId |
AuthenticateContact.php | การตรวจสอบสิทธิ์การติดต่อ |
BatchOperation.php | การใช้ตัวกรองในการดำเนินการแบบแบตช์ |
CreateLabel.php | ทำงานกับป้ายกำกับ |
DryRun.php | พื้นที่เก็บข้อมูลทดสอบ (การทดลองใช้งาน) |
ดาวน์โหลดใบแจ้งหนี้PDF.php | ดาวน์โหลดใบแจ้งหนี้ PDF |
Error404.php | ทำงานกับบันทึกที่ไม่มีอยู่จริง |
ค้นหาใบแจ้งหนี้เกินกำหนด.php | ค้นหาใบแจ้งหนี้ที่ค้างชำระ |
GetRecordWithRelation.php | การรับบันทึกรวมถึงข้อมูลจากเดบิตย่อย |
GetBankAccountForCompany.php | การรับบัญชีธนาคารสำหรับบริษัทจากไดเร็กทอรี |
InvoiceLockUnlock.php | การล็อคและการปลดล็อคบันทึก |
InvoiceCopy.php | การสร้างเอกสารภาษีจากการจ่ายเงินล่วงหน้า |
เข้าสู่ระบบออกจากระบบ | ผู้ใช้เข้าสู่ระบบและออกจากระบบ |
นัจดีดาโนวีด็อกลาดKzalohovemu.php | การติดตามเอกสาร |
ที่เก็บข้อมูล.php | สต็อกสินค้าพร้อมหมายเลขซีเรียล |
ใหม่Invoice.php | ใบแจ้งหนี้ใหม่ที่มีวันครบกำหนดเขียนเป็น json |
ObjectChaining.php | การเชื่อมโยงวัตถุสำหรับการดำเนินการหลายรายการในคิวเท่านั้น |
ObjectCooperation.php | การแชร์ข้อมูลและพารามิเตอร์การเชื่อมต่อระหว่างออบเจ็กต์ |
PerformingActions.php | วิธีดำเนินการกับเอกสารการดำเนินการ เช่น การยกเลิก |
อ่าน AddressColumns.php | ส่งคืนคอลัมน์เฉพาะ |
sendInvoiceByMail.php | ส่งใบแจ้งหนี้ทางอีเมล |
SendReminders.php | กำลังส่งการแจ้งเตือน |
SetContactAuth.php | การตั้งค่าการรับรองความถูกต้อง |
TestConnection.php | ตรวจสอบการเชื่อมต่อ |
docker pull vitexsoftware/ FlexiPeeHP
มีแพ็คเกจ .deb สำหรับ Linux กรุณาใช้ repo:
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
นอกจากนี้เรายังสร้างแพ็คเกจ FlexiPeeHP -doc ซึ่งมีเอกสารประกอบสำหรับนักพัฒนาที่สร้างโดยใช้โปรแกรม ApiGen เอกสารสามารถดูออนไลน์ได้ที่ http://flexibee-dev.spoje.net/FlexiPeeHP/
การทดสอบ:
cd /usr/share/doc/ FlexiPeeHP /
composer install
php -f flexibeeping.php
เราสร้างแพ็คเกจ Debian โดยการรัน make deb
ภาพนักเทียบท่า:
docker build -t vitexsoftware/ FlexiPeeHP
สถิติการทำงานในโครงการ WakaTime