动态加载模块简介
动态
可以理解成运行时按需加载代码(不是运行时编译)
加载模块
加载模块这种形式可以用于对已有系统的扩展(在不改动系统核心代码的情况下)。
比如,你做了一个社交网站,想要为你的网站增加新的功能,如要要去重新改动原来的代码,一是麻烦,而是可能引起新的问题。
不过如果你实现了模块话加载,那很大程度上就只需要写一个新的模块就行了,而不用去改动原来的代码。
现在也有很多这种模式的系统,比如discuz,thinksns,opensns等等…
实现代码
这里先给出完整代码再作分析
<?php
/**
* Created by PhpStorm.
* User: 奔跑的MT
* Date: 17-1-21
* Time: 下午2:11
*/
class Person
{
public $name;
function __construct($name)
{
$this->name = $name;
}
}
interface Module
{
function execute();
}
class FtpModule implements Module
{
function setHost($host)
{
print "FtpModule::setHost(): $host\n";
}
function setUser($user)
{
print