Импорт библиотеки php в проект laravel - PullRequest
0 голосов
/ 26 сентября 2019

У меня была проблема с импортом библиотек в проект Laravel.Я хочу использовать библиотеку image_QRCode-0.1.3, закодированную в php, используемую в Project Laravel.

https://pear.php.net/package/Image_QRCode/download

, но когда я использую команду require в классе QRCodeController

<?php


namespace App\Http\Controllers\Api;

use App\Http\Controllers\Controller;

require_once "../../../Library/Image_QRCode-0.1.3/Image_QRCode-0.1.3/Image/QRCode.php";

class QRCodeController extends Controller {
    public function genQRCode()
    {
        $QR = new \Image_QRCode();
        $option = array(
            'module_size' => 4,
            'image_type' => 'png',
            'output_type' => 'display',
            'error_correct' => 'H',
        );

        $qrcode = $QR->makeCode(htmlspecialchars("https://blog.shnr.net/?p=526", ENT_QUOTES), $option);
    } 
}

Программа не запустилась и сообщила об ошибке.

Пожалуйста, помогите мне, большое спасибо!

1 Ответ

1 голос
/ 26 сентября 2019

Чтобы использовать внешние классы или любую другую библиотеку PHP в вашем проекте Laravel, вам необходимо выполнить следующие шаги:

1.Создайте папку где-нибудь в вашем приложении Laravel, которая будет содержать файлы PHP, которые вы собираетесь использовать:

Например, у вас есть собственный класс, создайте папку в каталоге app/libraries.Внутри app/libraries вставьте файлы PHP, которые вы будете использовать (файлы библиотеки, которые вы загрузили).

2.В вашем файле composer.json добавьте папку / каталог в вашу карту классов автозагрузки:

"autoload": {
        "classmap": [
            "app/commands",
            "app/controllers",
            "app/models",
            "app/libraries", <------------------ YOUR CUSTOM DIRECTORY
            "app/database/migrations",
            "app/database/seeds",
        ]
    }

3.Как только вы закончите, просто запустите composer dump-autoload, и вы сможете вызывать свой класс следующим образом:

Предполагая, что ваше имя класса SomeClass.php и оно находится в каталоге app/libraries, и выПравильно расположив пространство имен для класса, который вы только что скопировали, теперь вы можете использовать SomeClass.php там, где вам это нужно.

$class = new \some_class_namespace\SomeClass();

Вы также можете указать псевдоним в файле config/app.php:

/*
|--------------------------------------------------------------------------
| Class Aliases
|--------------------------------------------------------------------------
|
| This array of class aliases will be registered when this application
| is started. However, feel free to register as many as you wish as
| the aliases are "lazy" loaded so they don't hinder performance.
|
*/

'aliases' => [
    ....
    'SomeAlias' => 'app\libraries\SomeClass',
    ....
],

После этого вы можете создать экземпляр класса из любого места в вашем приложении, как и любые другие классы:

$class = new SomeAlias();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...