Добавление composer в существующий проект codeigniter - PullRequest
0 голосов
/ 26 мая 2020

Я хочу добавить Composer в свой проект CodeIgniter и зависимости автозагрузки. Я выполнил несколько шагов, но, вероятно, что-то упустил. Вот шаги, которые я выполнил.

В файле config. php я изменил $config['composer_autoload'] на TRUE, и я также попытался изменить его на FCPATH.'vendor\autoload.php', что не сработало.

Внутри проекта root папка Я использовал эту команду: composer require mpdf/mpdf, и она создала папку vendor с mpdf в ней.

Немного прочитав, я внес это изменение в конец индекса. php:

/*
 * --------------------------------------------------------------------
 * LOAD THE BOOTSTRAP FILE
 * --------------------------------------------------------------------
 *
 * And away we go...
 */
include_once './vendor/autoload.php';
require_once BASEPATH.'core/CodeIgniter.php';

Вот как выглядит структура проекта после внесенных изменений:

project structure image

Вот composer. json:

{
        "description": "The CodeIgniter framework",
        "name": "codeigniter/framework",
        "type": "project",
        "homepage": "https://codeigniter.com",
        "license": "MIT",
        "support": {
            "forum": "http://forum.codeigniter.com/",
            "wiki": "https://github.com/bcit-ci/CodeIgniter/wiki",
            "slack": "https://codeigniterchat.slack.com",
            "source": "https://github.com/bcit-ci/CodeIgniter"
        },
        "require": {
            "php": ">=5.3.7",
            "mpdf/mpdf": "^8.0"
        },
        "suggest": {
            "paragonie/random_compat": "Provides better randomness in PHP 5.x"
        },
        "require-dev": {
            "mikey179/vfsStream": "1.1.*",
            "phpunit/phpunit": "4.* || 5.*"
        }
    }

Это контроллер, который я использовал для тестирования mpdf:

    <?php
defined('BASEPATH') OR exit('No direct script access allowed');

class TestingGround extends CI_Controller{
    public function index() {
        $this->load->view("testing_ground");
    }
    public function pdf(){

      $mpdf = new mPDF();

      // Write some HTML code:

      $mpdf->WriteHTML('Hello World');

      // Output a PDF file directly to the browser
      $mpdf->Output();

      }
}

Это ошибка, которую я получаю: Class 'mPDF' not found C:\wamp64\www\kariyer_1.6\application\controllers\TestingGround.php 12

1 Ответ

1 голос
/ 26 мая 2020

Вы должны использовать правильный класс - mPDF использует пространства имен, и, как описано в https://mpdf.github.io/installation-setup/installation-v7-x.html, вы должны создать его экземпляр следующим образом:

$mpdf = new \Mpdf\Mpdf();
...