Consolibyte Quickbooks未知类错误:quickbooks-php获取非美账户税率求助
解决quickbooks-php获取非美国账户税率的类缺失问题
听起来你踩了个版本兼容的坑——稳定版3.2/3.3里确实没包含EffectiveTaxRate这个类,只有开发分支才有,直接复制文件到vendor目录确实不是长久之计,毕竟composer更新的时候很容易被覆盖。给你几个更靠谱的解决思路:
1. 锁定开发分支的可靠提交
既然开发版已经验证可用,你可以在composer里指定使用开发分支,并锁定到一个你测试过没问题的具体提交哈希,这样既用到了包含EffectiveTaxRate的代码,又能避免后续开发分支的变动引入新问题。
修改你的composer.json:
{ "require": { "consolibyte/quickbooks": "dev-master#abc123def456" } }
把abc123def456替换成你测试过的开发分支提交哈希,然后执行composer update即可。
2. 等待官方正式版本更新
既然开发分支已经加入了这个类,说明官方大概率会在后续的正式版本(比如3.4及以后)合并这部分代码。你可以去项目的官方代码仓库关注相关的Issue或PR进度,等正式版发布后直接升级版本号就行,这是最省心的长期方案。
3. 用自定义类映射优雅过渡
如果暂时不想切换到开发分支,你可以把EffectiveTaxRate.php的代码复制到自己项目的目录下,通过Composer的自动加载规则来引入,而不是修改vendor目录。
比如在你的项目src目录下创建路径QuickBooks/IPP/Object/,把类文件放进去,然后修改composer.json添加自动加载规则:
{ "autoload": { "psr-0": { "QuickBooks\\IPP\\Object": "src/" } } }
执行composer dump-autoload更新自动加载缓存,这样Composer会优先加载你项目里的这个类,后续composer update也不会覆盖你的修改。
内容的提问来源于stack exchange,提问作者Василь Котовець
相关产品推荐
相关产品推荐

