Php 表达式引擎控制器

Php 表达式引擎控制器,php,codeigniter,controller,expressionengine,Php,Codeigniter,Controller,Expressionengine,我在Expression Engine中创建了我的第一个站点,我想知道如何在EE中使用自定义控制器,就像在Codeigniter中一样,或者EE的等效物是什么?一般来说,ExpressionEngine使用模板组和模板来呈现内容 EE是基于CI构建的,但它的功能与CI不同,因为它是CMS,而不是应用程序框架。控制器是应用程序的核心,因为它们决定了应该如何处理HTTP请求 您可能很清楚,类文件只是一个类文件,其命名方式可以与URI关联 <?php class Blog extends

我在Expression Engine中创建了我的第一个站点,我想知道如何在EE中使用自定义控制器,就像在Codeigniter中一样,或者EE的等效物是什么?

一般来说,ExpressionEngine使用模板组和模板来呈现内容


EE是基于CI构建的,但它的功能与CI不同,因为它是CMS,而不是应用程序框架。

控制器是应用程序的核心,因为它们决定了应该如何处理HTTP请求

您可能很清楚,类文件只是一个类文件,其命名方式可以与URI关联

<?php
    class Blog extends CI_Controller {

        public function index() {
            echo 'Hello World!';
        }
    }
?>

ExpressionEngine等效于,并从控制面板的模板管理器中进行管理

由于EE的模板组和模板可以被命名为任何您想要的名称,因此毫不奇怪,EE松散地模仿了CodeIgniter应用程序——毕竟,EE是基于CI构建的

例如,考虑这个URI:<代码>示例.COM/index .php/blog < /COD>

  • CodeIgniter将尝试找到名为
    blog.php
    的控制器并加载它
  • ExpressionEngine将尝试查找名为
    blog
    的模板组,并加载名为
    index
    的模板
继续本例,URI的第二段确定调用控制器中的哪个函数(对于CodeIgniter)或加载哪个模板(对于ExpressionEngine)

基于相同的URI构建:
example.com/index.php/blog/entry

  • CodeIgniter将尝试找到名为
    blog.php
    的控制器并加载它
  • ExpressionEngine将尝试查找名为
    blog
    的模板组,并加载名为
    entry
    的模板
CodeIgniter和ExpressionEngine从第三个URL段开始采用不同的方法。(对其差异的完整解释超出了本回答的范围)


虽然CodeIgniter和ExpressionEngine之间有很多相似之处,但在非常低的层次上,CodeIgniter让你构建Web应用程序,而ExpressionEngine让你构建网站。

我知道这很古老,但我只是认为有人看到这一点可能会发现实际的响应很有用。 正如其他人所说,在ExpressionEngine中,默认情况下忽略控制器的路由。 要更改此设置,必须编辑第一个index.php并注释掉路由默认值:

// $routing[‘directory’] = ‘’;
// $routing[‘controller’] = ‘ee’;
// $routing[‘function’] = ‘index’;
完成后,您可以添加控制器,就像@rjb在其响应中所写的那样

<?php
class Blog extends CI_Controller {

    public function index() {
        echo 'Hello World!';
    }
}
?>

完成此操作后,ExpressionEngine将首先检查控制器,如果没有找到,它将查找模板