codeigniter 3命名空间问题

时间:2015-12-28 04:29:46

标签: php codeigniter namespaces psr-4

我正在使用codeigniter 3.我使用composer psr-4 autoload。我启用作曲家配置为 $config['composer_autoload'] = FCPATH."vendor/autoload.php";

我的composer.json自动加载为

"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;一切顺利。 主要问题在哪里?谢谢。

2 个答案:

答案 0 :(得分:0)

Codeigniter不像Symfony,Zend,CakePHP。它只是一个易于理解和使用的基本PHP框架。

Python

在上面的代码中,您在代码中使用了<?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

您可能会得到一些问题

这仅适用于控制器吗?

是。这段代码足以创建新的控制器。

我们可以在控制器内使用多少个功能

您可以使用 N-Number 的功能。但是,当它超过300线更好地分成两个时,就像常见的那样

答案 1 :(得分:0)

您正在修改CI以使用名称空间,但不能在控制器中将名称空间用作
因为路由过程。 Route将无法找到控制器的方法。