3

私は codeigniter 3 に取り組んでいます。composer psr-4 autoload を使用しています。composer configを次のように有効にします $config['composer_autoload'] = FCPATH."vendor/autoload.php";

そして私の composer.json autoload として

"autoload":{
  "psr-4":{
      "App\\":"application"
        },
  "classmap":["system"]
  }
}

次のような抽象コントローラーがありController.phpます

<?php namespace App\controllers;
use CI_Controller;
abstract class Controller extends CI_Controller{}

これは正常に動作します。しかし、主な問題は、コントローラーとして次のように書くときです

<?php namespace App\controllers;
use App\controllers\Controller;
use App\models\User;
class Welcome extends Controller {
    public function index()
    {
        $this->load->view('welcome_message');
    }
}

動作しません。削除すると、namespace App\Controllers;すべてうまくいきます。主な問題はどこですか?ありがとうございました。

4

2 に答える 2

0

Codeigniter は、Symfony、Zend、CakePHP とは異なります。理解しやすく使いやすい基本的な PHP フレームワークです。

<?php 
namespace App\controllers;
use App\controllers\Controller;
use App\models\User;
class Welcome extends Controller {
    public function index()
    {
        $this->load->view('welcome_message');
    }
}

上記のコードでは、コード内でnamespace,useキーワードを使用しています。実際には、そのようなコントローラーをロードする必要はありません。


必要に応じて、新しいコントローラーを追加します。このように使うだけです。

ファイル名 =admin.php

<?php

    if (!defined('BASEPATH'))
        exit('No direct script access allowed');

    class Admin extends CI_Controller {
    }

あなたが得るかもしれないいくつかの質問

これはコントローラーだけで十分ですか??

はい。このコードは、新しいコントローラーを作成するのに十分です。

コントローラー内で使用できる関数の数

N-Number関数を使用できます。ただし、300 行を超える場合は 2 つに分割する方が一般的です

于 2015-12-28T07:10:55.517 に答える