连接到My_Loader.php的Loader.php
关于代码点火器加载,我有一个非常基本的问题 MY_loader(特别是)如何连接到loader.php 比如说 如果我尝试在application/core中创建一个类连接到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; } } 这样的声明不符合函数永远不会被调用的目的 但是当我以
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可能正在查找文件夹中的文件名,然后对其应用一些愚蠢的规则来猜测类名。但这既没有效果,也没有效率。但当它与你一起工作时。这就是你需要知道的-谢谢你的帮助:)