var-lab / lexoffice-bundle
一个用于集成lexoffice API的Symfony扩展包。
0.1.1
2024-06-08 15:58 UTC
Requires
- php: ^8.1
- ext-ctype: *
- ext-iconv: *
- ext-posix: *
- guzzlehttp/guzzle: ^7.8
- symfony/config: ^6.2
- symfony/dependency-injection: ^6.2
- symfony/filesystem: ^6.4
- symfony/http-client: ^6.4
- symfony/serializer: ^6.4
- symfony/validator: ^6.4
- thecodingmachine/safe: ^2.1
Requires (Dev)
- ext-pcntl: *
- ergebnis/composer-normalize: ^2.15
- jangregor/phpstan-prophecy: ^1.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan: ^1.4
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpstan/phpstan-strict-rules: ^1.1
- phpunit/php-code-coverage: ^9.2
- phpunit/phpunit: 9.5.16
- spatie/phpunit-snapshot-assertions: ^4.2
- squizlabs/php_codesniffer: *
- symfony/browser-kit: ^6.2.0
- symfony/framework-bundle: ^6.4
- symfony/http-kernel: ^6.2
- symfony/phpunit-bridge: ^6.2.0
- symfony/stopwatch: ^6.2.0
- symfony/var-exporter: ^6.2
- thecodingmachine/phpstan-safe-rule: ^1.2
- var-lab/coding-standard: ^1.0
Conflicts
README
简介
此扩展包将lexoffice公共API集成到Symfony中,利用Symfony的序列化器将API响应转换为对象。兼容Symfony 6.4。
安装
- 下载扩展包
将扩展包添加到您的 composer.json
composer require var-lab/lexoffice-bundle
2. 注册扩展包
(应由composer自动完成)
return [ // ... VarLabIT\LexofficeBundle\VarLabITLexofficeBundle::class => ['all' => true], ];
3. 添加配置
创建配置文件 config/packages/var_lab_it_lexoffice.yaml
,内容如下
var_lab_it_lexoffice: api_key: '%env(LEXOFFICE_API_KEY)%'
将API密钥添加到您的 .env
# ... LEXOFFICE_API_KEY=<your-api-key>
用法
以下API函数目前已被覆盖
- 联系人
- 获取联系人
- 创建联系人
- 更新联系人
- 发票
- 创建发票
- 更新发票
- 获取发票
- 下载发票PDF
lexoffice扩展包目前正在进一步开发中。欢迎您提交自己的pull请求。
联系人
创建新的联系人
<?php use VarLabIT\LexofficeBundle\Entity\Address; use VarLabIT\LexofficeBundle\Entity\Company as LexofficeCompany; use VarLabIT\LexofficeBundle\Entity\Contact; use VarLabIT\LexofficeBundle\Entity\ContactRole; use VarLabIT\LexofficeBundle\Entity\Enum\AddressType; use VarLabIT\LexofficeBundle\Entity\Enum\RoleType; use VarLabIT\LexofficeBundle\Entity\Person; use VarLabIT\LexofficeBundle\LexofficeClient; class CityPageController extends AbstractController { public function __construct( private readonly CompanyRepository $companyRepository, private readonly LexofficeClient $lexofficeClient, ) { } private function getContactObject(Company $company): Contact { $contact = new Contact(); $contact ->setVersion(0) ->addRole(RoleType::CUSTOMER, new ContactRole()) ->setCompany( (new LexofficeCompany()) ->setName($company->getName()) ->addContactPerson( (new Person()) ->setFirstName($company->getGivenName()) ->setLastName($company->getFamilyName()) ->setEmailAddress($company->getInvoiceEmail()) ->setPrimary(true) ->setPhoneNumber($company->getContactPhone()) ), ) ->addAddress( AddressType::BILLING, (new Address()) ->setSupplement('Rechnungsadresse') ->setStreet($company->getAddress()) ->setZip($company->getZipcode()) ->setCity($company->getCity()) ->setCountryCode($company->getCountry()) ); return $contact; } public function createContact(int $companyId): Response { $company = $this->companyRepository->find($companyId); $contact = $this->createContact($company); $contact = $this->lexofficeClient->createContact($contact); $company ->setVersion($contact->getVersion()) ->setLexofficeId($contact->getId()); } }
更新联系人
public function createContact(int $companyId): Response { $company = $this->companyRepository->find($companyId); $contact = $this->createContact($company); $contact = $this->lexofficeClient->updateContact($contact); $company ->setVersion($contact->getVersion()) ->setLexofficeId($contact->getId()); }
维护者
此扩展包由 var-lab IT GmbH 和贡献者维护和创建。