php - codeigniter 3命名空间问题

标签 php codeigniter namespaces psr-4

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

和我的 composer.json 自动加载为

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

我有一个抽象 Controller 作为 Controller.php 作为

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

效果很好。 但主要问题是当我作为 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; 一切正常。 主要问题在哪里?谢谢。

最佳答案

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,在代码中使用关键字。实际上不需要像那样加载 Controller 。


如果你想添加新的 Controller 。就这样使用。

文件名 = admin.php

<?php

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

    class Admin extends CI_Controller {
    }

你可能会遇到的一些问题

这只够 Controller 用吗??

是的。此代码仅够创建新 Controller 。

我们可以在 Controller 内部使用多少函数

您可以使用N-Number 个函数。但是当它超过 300 行时最好分成两行时也是常见的

关于php - codeigniter 3命名空间问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34487695/

相关文章:

javascript - 获取文本框的前一个值

php - 从数组中的每个值中删除破折号,然后重建数组

struts2 - Struts2 包中的命名空间属性是如何工作的?

javascript - 设置时区的 angularjs 全局配置

php - 图像(SQL Server)和longblob(MySQL)有什么区别?

php - 重写 CI url

c++ - 本地范围内子命名空间的命名空间别名

ruby-on-rails - 模块/类冲突试图在 Rails 中命名空间模型

php - 用于 PHP 的 VIM : List if( )'s and include()' s in Taglist

php - 使用 PHP Maths 和 Round 计算页数