22

私はこの記事をフォローしました: http://philsturgeon.co.uk/blog/2012/05/composer-with-codeigniter

しかし、私は得るFatal error: Class 'Buzz\Browser' not found

彼の投稿に欠けているものは何ですか?

コントローラーまたはアプリケーションが名前空間化されていません。名前空間のないフレームワークで、1 つのコントローラーのアクションでその 1 つのパッケージを使用できるようにしたいと考えていました。

4

7 に答える 7

45

CodeIgniter 3.x および composer の場合、にまたはカスタム パスを設定することをお勧めします。$config['composer_autoload']TRUEapplication/config/config.php

vendorCIはディレクトリがディレクトリ内にあると想定しているようですapplication。それは私の場合ではありませんでした。私は次のことをしました:

$config['composer_autoload'] = 'vendor/autoload.php';

于 2016-11-15T16:07:08.567 に答える
38

@jmadsenの功績

これは、ロードの順序を正しくするだけで可能です。

/*
 * --------------------------------------------------------------------
 * LOAD THE BOOTSTRAP FILE
 * --------------------------------------------------------------------
 *
 * And away we go...
 *
 */
// Composer Autoloader
require FCPATH . 'vendor/autoload.php';

require_once BASEPATH.'core/CodeIgniter.php';

/* End of file index.php */
于 2013-03-06T10:18:37.040 に答える
8

編集:くそー、私はちょうど@Tjorriemorrieとほぼ同じことを言った

他のすべての指示に正しく従っている場合は、次のコードを index.php ファイルの最後近くに追加するだけです。

/*
 * --------------------------------------------------------------------
 * COMPOSER AUTOLOAD
 * --------------------------------------------------------------------
 */
include_once './vendor/autoload.php';

... CodeIgniter Bootstrap ファイルが呼び出される前に、必ず挿入してください:

/*
 * --------------------------------------------------------------------
 * LOAD THE BOOTSTRAP FILE
 * --------------------------------------------------------------------
 *
 * And away we go...
 *
 */
 require_once BASEPATH.'core/CodeIgniter.php';
于 2013-03-20T06:55:27.583 に答える
6

コントローラーに Composer Autoloder を直接追加できます。

// Composer Autoloader
require FCPATH.'vendor/autoload.php';
于 2012-12-12T17:05:17.537 に答える
4

composer を使用して必要なクラス・ファイルを自動ロードするには、2 つの方法があります。

  1. ルート ディレクトリの index.php に以下の行を追加します。

    require FCPATH . 'vendor/autoload.php';
    
  2. または、使用するコントローラーで直接オートロードします。

    defined('BASEPATH') OR exit('No direct script access allowed');
    
    require FCPATH . 'vendor/autoload.php';
    
    class Home extends CI_Controller {...}
    
于 2018-05-05T16:36:56.163 に答える