Loader.php与My_loader.php的连接

时间:2013-11-22 08:02:55

标签: php codeigniter classloader

我有一个关于Code Igniter加载的非常基本的问题 MY_loader(具体)如何连接到loader.php

例如

如果我尝试在application / core中创建一个类

    class custom_class extends CI_Loader {
           Public function template(){
                      do something; 
               } }

这样的声明不能满足函数永远不会被调用的目的 但是当我在名称

下创建类时
         class custom_class extends CI_Loader {
              Public function template(){
                    do something; 
           } }

自动加载的类 并且可以调用该函数 所以我对整个过程中涉及的通用步骤感兴趣

或幕后发生的事情 确定没有自动的东西必须有一些代码

赞赏这方面的任何帮助

1 个答案:

答案 0 :(得分:1)

我相信你在这里遗失的是Simple four OOP principles和一些小学Design Patterns

首先让我们来解决这段代码,

<?php
class Human {
    var $name;
    function __construct($name) {
        $this->name = $name;
    }
}

class Son extends Human {
    function speak() {
        return "singing lullaby";
    }
}

class GrandSon extends Son {
    function speak() {
        return "baby laughing";
    }
}

$humans = array(new Son('Mamdouh'), new GrandSon('Emma'));

foreach($humans as $human) {
    print $human->name . " is: " . $human->speak() . '<br>';
}
?>

正如您所看到的,即使class Sonclass GrandSon没有$name属性,我们仍然可以在其实例中将其用作属性,这就是我们所说的{{ 3}} 这是为不同类型的实体提供单个接口。现在,CI_Loader如何工作,正如我在Polymorphism中已经提到的那样,加载器是previous question

免责声明:我为工厂模式提供的链接是工厂方法模式,而不是Factory Pattern,这与问题不完全相关。

但是这里的想法是相同的,工厂负责生成/ Abstract Factory Pattern类对象,以将此过程与instantiating分开 这将使代码测试更容易。

显然,有很多阅读材料要做,但理解起来很简单。

注意:您可以在此domain logic/Business Logic

中查看上面的书面代码