我有一个关于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;
} }
自动加载的类 并且可以调用该函数 所以我对整个过程中涉及的通用步骤感兴趣
或幕后发生的事情 确定没有自动的东西必须有一些代码
赞赏这方面的任何帮助
答案 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 Son
和class GrandSon
没有$name
属性,我们仍然可以在其实例中将其用作属性,这就是我们所说的{{ 3}}
这是为不同类型的实体提供单个接口。现在,CI_Loader
如何工作,正如我在Polymorphism中已经提到的那样,加载器是previous question
免责声明:我为工厂模式提供的链接是工厂方法模式,而不是Factory Pattern,这与问题不完全相关。
但是这里的想法是相同的,工厂负责生成/ Abstract Factory Pattern类对象,以将此过程与instantiating分开 这将使代码测试更容易。
显然,有很多阅读材料要做,但理解起来很简单。
注意:您可以在此domain logic/Business Logic
中查看上面的书面代码