我想在我的Laravel应用程序中使用以下GitHub repo:
https://github.com/khanamiryan/php-qrcode-detector-decoder
它没有设置作曲家,也没有从Packagist中找到它。我试图使用常规的php_require,但它告诉我" Class' App \ Http \ Controllers \ QrReader'找不到"。
无论如何,使用php_require感觉不对。处理这种情况的正确方法是什么?
答案 0 :(得分:2)
在app根目录中创建一个新目录
mkdir third-party
cd third-party
克隆回购
git clone https://github.com/khanamiryan/php-qrcode-detector-decoder
编辑您的composer.json文件并将其添加到类图:
"classmap": [
"database",
"third-party/php-qrcode-detector-decoder"
],
更新班级地图:
composer dumpautoload
您应该在vendor/composer/autoload_classmap.php
'Zxing\\Binarizer' => $baseDir . '/third-party/php-qrcode-detector-decoder/lib/Binarizer.php',
'Zxing\\BinaryBitmap' => $baseDir . '/third-party/php-qrcode-detector-decoder/lib/BinaryBitmap.php',
...
然后你只需要使用它:
use Zxing\Reader;
答案 1 :(得分:0)
我认为主要的类是QrReader()。您可以将此类用作控制器类,但您需要扩展控制器类并修复导入。您也可以在laravel控制器上将此类导入为第三方类。 你需要使用QrReader()类吗? 然后将所有库文件App \ Libraries和主类放在App \ classes中。或者你也可以用自己的方式做。但请遵循以下内容 1)管理名称空间 2)使用
将类导入控制器use App\classes\QrReader
最后,您将可以访问导入的类中定义的所有方法。但是在主类中,您需要更正库文件的路径和依赖关系。
您也可以尝试本教程: How to use external classes
你可以在这里阅读讨论(尼斯) Best way to import third party classes
答案 2 :(得分:0)
因为这个github项目没有composer.json文件,所以我认为你不能将它与composer一起使用。
但是,你可以分支回购,制作自己的副本,并为其添加一个作曲家文件。然后你就可以将它添加到你的主项目的composer.json文件中:
{
"repositories": [
{
"type": "git",
"url": "https://github.com/your-git-account/php-qrcode-detector-decoder"
}
],
"require": {
"your-git-account/php-qrcode-detector-decoder": "dev-master"
}
希望这有帮助!
(来源https://getcomposer.org/doc/05-repositories.md#loading-a-package-from-a-vcs-repository)