昨天有人联系我们,问我thinkphp是怎样自动加载这些类的,为什么我写好DemoAction.class.php在thinkphp中就能认识呢? 这是怎么认识的?我当时回答就是,您带看看php的面向对向中的魔术方法,我记得是__autoload自动加载方法,那是怎样实现的呢 thinkphp是在核心处写的自动加在类,我给大家演示一下,简单写起来就是这样!
<?php
//我定义一个类核心,譬如我要做的Widuuphp吧
class Widuu{
public static function __autoload($name){
include $this->class."Action.class.php";//就这样我们就自动加载了呀
}
}
</pre>
//就这样实现的,你可以在外部做一下实验
下一个问题,昨天人问thinksns这个系统是怎样把应用接入网站的
我给大家举一个例子,首先我们要知道网站的编写规范,这些都是由抽象类和接口做成的
下边给大家简单介绍一下,我用接口做
<pre lang='php' line='1'>
<?php
header('content-type:text/html;charset=utf-8');
interface inter{ //申明一个接口的类
function install(); //安装的方法
function work(); //工作的方法
function uninstall(); //卸载的方法
}
class app implements inter{
function install(){
echo "这里是安装的方法<br>";
}
function work(){
echo "这里是应用的方法<br>";
}
function uninstall(){
echo "这里是卸载的方法<br>";
}
}
class web{ //多态,我有一个网站,能应用不同的应用,不同的应用都要使用底下的 安装 工作 卸载方法
function useapp($app){
$app->install();
$app->work();
$app->uninstall();
}
}
class work{//运行的类
function install(){
$w=new web;
$y=new app();
$w->useapp($y);
}
}
$webapp=new work; //实列化这个类
$webapp->install(); //然后执行
如果您有问题请留言!
欢迎转载,转载请注明来自微度网络http://yun.widuu.com,由于都是在文本速度写的,可能有的地方写的有错,希望大家看到了提醒一下

发表评论 取消回复