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