Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
连接到My_Loader.php的Loader.php_Php_Codeigniter_Classloader - Fatal编程技术网

连接到My_Loader.php的Loader.php

连接到My_Loader.php的Loader.php,php,codeigniter,classloader,Php,Codeigniter,Classloader,关于代码点火器加载,我有一个非常基本的问题 MY_loader(特别是)如何连接到loader.php 比如说 如果我尝试在application/core中创建一个类 class custom_class extends CI_Loader { Public function template(){ do something; } } 这样的声明不符合函数永远不会被调用的目的 但是当我以

关于代码点火器加载,我有一个非常基本的问题 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; 
           } }
它自动加载的类 并且可以调用该函数 所以我对整个过程中涉及的一般步骤感兴趣

或者幕后发生了什么 嗯,肯定没有自动的东西,一定有一些代码


非常感谢您在这方面提供的任何帮助

我相信您在这里缺少的是一些基础知识

首先,让我们讨论一下这个代码

<?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>';
}
?>

正如您所看到的,即使
类子
类孙子
没有
$name
属性,我们仍然可以在它们的实例中将其用作属性,这就是我们所称的 这是为不同类型的实体提供单一接口。这就是加载程序案例中扩展的工作原理,
CI_加载程序
是如何工作的,正如我在您的案例中提到的,加载程序是一个

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

但这里的想法是一样的,工厂负责生成/类对象,以将此过程与 这将使代码测试更容易

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


注意:您可以在此查看上面的书面代码

非常感谢您的回答,我相信您在CI和设计模式方面有很多知识,而我目前缺乏您的回答,您的回答确实帮助我理解了这一点,但有人认为em无法理解为什么使用MY_loader名称声明类只起作用,为什么可以;我用了一个不同的名字,我试过了,但是除了我的_加载器以外的类名不起作用。。。CI查找文件名MY_Loader我想它更像你说的。CI可能正在查找文件夹中的文件名,然后对其应用一些愚蠢的规则来猜测类名。但这既没有效果,也没有效率。但当它与你一起工作时。这就是你需要知道的-谢谢你的帮助:)