【问题标题】:Expression Engine Controllers表达式引擎控制器
【发布时间】:2011-09-29 03:47:53
【问题描述】:

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

【问题讨论】:

    标签: php codeigniter controller expressionengine


    【解决方案1】:

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

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

    <?php
        class Blog extends CI_Controller {
    
            public function index() {
                echo 'Hello World!';
            }
        }
    ?>
    

    ExpressionEngine 等效项为 template groups and templates,并在控制面板的模板管理器中进行管理。

    由于 EE 的模板组和模板可以任意命名,URL structure 毫不奇怪地模仿了 CodeIgniter 应用程序——毕竟,EE 是基于 CI 构建的。

    例如,考虑这个 URI:example.com/index.php/blog

    • CodeIgniter 会尝试找到一个名为blog.php控制器并加载它。
    • ExpressionEngine 将尝试查找名为 blog模板组 并加载名为 index模板

    继续本示例,URI 的第二段确定调用控制器中的哪个函数(对于 CodeIgniter)或加载哪个模板(对于 ExpressionEngine)。

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

    • CodeIgniter 将尝试查找名为 blog.php 的控制器并加载它。
    • ExpressionEngine 将尝试查找名为 blog模板组 并加载名为 entry模板

    从第三个及以后的 URL 段开始是 CodeIgniter 和 ExpressionEngine 开始采用不同方法的地方。 (对其差异的完整解释超出了此答案的范围)。

    虽然 CodeIgniter 和 ExpressionEngine 之间有许多相似之处,但在非常低的级别上,CodeIgniter 可让您构建Web 应用程序,而 ExpressionEngine 可让您构建网站 .

    【讨论】:

      【解决方案2】:

      我知道这是旧的,但我只是认为有人在看这个可能会发现实际的响应很有用。 正如其他人所说,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 将首先检查控制器,如果没有找到,它将查找模板。

      【讨论】:

        【解决方案3】:

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

        EE建立在CI之上,但它的功能不像CI,因为它是一个CMS,而不是一个应用程序框架。

        【讨论】:

          猜你喜欢
          • 2011-06-30
          • 1970-01-01
          • 1970-01-01
          • 2023-03-10
          • 2012-01-02
          • 2012-04-04
          • 1970-01-01
          相关资源
          最近更新 更多