【发布时间】:2015-12-01 12:54:28
【问题描述】:
WHMCS 版本 6 使用 Eloquent model。
他们的using models documentation 明确说明了如何访问 WHMCS 数据库。
我遇到的问题是我想访问自己的模型。我有多个模型,一些直接访问 WHMCS,另一些访问完全独立的数据库。
要使用他们的模型,您可以这样做:
...
use WHMCS\User\Client;
...
我只是尝试这样做:
...
use WHMCS\User\Client;
use Radius\User\Logon;
...
我将模型添加到 $root_folder/includes/classes/Radius/User/Logon.php,模仿 WHMCS 的文件夹结构。
但是,我收到错误 Fatal error: Class 'Radius\User\Logon' not found in /var/www/vhosts/snowball.co.za/wh6.snowball.co.za/modules/servers/radius/radius.php on line 543
我完全怀疑我必须更新 Composer 才能识别我自己的模型,但我不确定。我所做的需要与 WHMCS 完全集成,并且不能破坏任何东西。
有人有什么建议吗?
【问题讨论】:
-
您可能需要更新您的自动装载机。
-
非常感谢您的回复。你指的是哪个自动加载器?我数了
autoload_classmap.php,autoload_files.php,autoload_namespaces.php,autoload_psr4.php,autoload_real.php,ClassLoader.php,autoload.php。我是否还必须进行某种作曲家更新? -
composer dump-autoload重建那些 -
嗨@BenSwinburne,谢谢,你简单的回答让我走得更远。看来我有很多事情要做。我按照本教程knpuniversity.com/screencast/question-answer-day/… 设置了一个基本的 Github 存储库。我注意到 WHMCS 根目录中没有 composer.json 文件,只有供应商文件夹中的 whmcs.composer.lock 文件。我将此文件复制到根目录并将其重命名为 composer.json。我还没有对 composer.json 进行添加,只是通过运行 composer update 进行测试。然后它会删除大部分现有文件!我有一些关于composer.json,composer.lock如何交互的阅读。
-
嗨@user2182349,请回答这个问题,以便我可以奖励赏金。事实证明,捷径是将必要的文件添加到供应商文件夹,然后只需更新autoload_psr4.php。我复制了在 autoload_ps4.php 中为 WHMCS 完成的操作,最终得到:
'Snowball\\' => array($vendorDir . '/snowball'),我意识到更新 Composer 的技术正确方法,但我怀疑 WHMCS 安装是极简的,所以我现在非常喜欢这种手动方法。尽管回想起来我没有正确回应您的评论,但您引导我取得成果,而您是第一个。
标签: php laravel eloquent composer-php whmcs