昨天有人联系我们,问我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,由于都是在文本速度写的,可能有的地方写的有错,希望大家看到了提醒一下

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部