码迷,mamicode.com
首页 > 其他好文 > 详细

9)添加自动加载函数

时间:2017-08-20 14:05:12      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:添加   bst   技术   控制器   处理   浏览次数   模板   分发   文件   

注意:我把之前的控制器文件名都加了C,不然,那个自动记载函数,我不会写

目录雏形:

      技术分享

 

我开始把自动加载类放在index.php代码的最下面,然后就报了这个错误:

  技术分享

因为我把代码中只要是类加载的地方,全部都注释了,所以,所以他报了--------Controller这个类没加载到,哎

气死我了,然后我发现,那个自动加载函数根本没进去,因为我加了这行代码,根本没有输出出来:
技术分享

后面,我才发现,原来这个index.php代码在前面的第11行发现了错误,那么后面可定就不运行了啊,哎,真是敲得代码少,这样的问题都不知道》》。。。。。。

 

我的新的index.php代码展示:

    

 1 <?php
 2     /**
 3      * Created by PhpStorm.
 4      * User: Interact
 5      * Date: 2017/8/19
 6      * Time: 22:02
 7      */
 8     //确定分发参数
 9     //动作
10     define(CONTROLLER,isset($_GET[c])?$_GET[c]:zixunC);
11     define(ACTION,isset($_GET[‘a])?$_GET[‘a]:show);
12     define("PLATFORM",isset($_GET[p])?$_GET[p]:test);
13     function userautoload($class_name){
14         
15 //        var_dump($class_name);
16         //先处理确定的(框架中的核心类)
17         // 类名与类文件映射数组
18         $framework_class_list = array(
19             // ‘类名‘ => ‘类文件地址‘
20             Controller => ./framework/Controller.php,
21             Model => ./framework/Model.class.php,
22             Factory => ./framework/Factory.class.php,
23             MySQLDB => ./framework/MySQLDB.class.php,
24         ) ;
25 //        echo "走没走";
26         //判断是否为核心类
27         if (isset($framework_class_list[$class_name])) {
28             //是核心类
29             require $framework_class_list[$class_name];
30         }
31         //判断是否为可增加(控制器类,模型类)
32         //控制器类,截取后是个字符,匹配Controller
33         elseif (substr($class_name, -1) == C) {
34             // 控制器类, 当前平台下controller目录
35             require ./application/ . PLATFORM . /controller/ . $class_name . .controller.class.php;
36         }
37         //模型类,截取后5个字符,匹配Model
38         elseif (substr($class_name, -5) == Model) {
39             // 模型类,当前平台下model目录
40             require ./application/ . PLATFORM . /model/ . $class_name . .class.php;
41         }
42         
43     }
44     spl_autoload_register(userautoload);
45     
46     
47     
48     
49     require ./application/.PLATFORM./controller/.CONTROLLER..controller.class.php;
50 $controlelr_name=CONTROLLER;
51 $controller=new $controlelr_name();
52 $action_name=ACTION;
53 $controller->$action_name();

 

注意我的自动加载函数放到了后面类的实例化的前面。

html代码有改动:

    技术分享

html代码展示:

     

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="utf-8"><!-- 编码格式是 utf-8 -->
 5     <meta http-equiv="X-UA-Compatible" content="IE=edge"><!-- 使用最新式 ie 内核渲染国内某些 所谓的 双核浏览器 或者是 直接 使用webkit去渲染-->
 6     <meta name="viewport" content="width=device-width, initial-scale=1,user-scalable=no">
 7     <!-- 视口属性没有设置 禁用 用户缩放, 如果有需求可以添加-->
 8     <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
 9     <title>bootstrap的模板页</title>
10     <!-- Bootstrap -->
11 
12 </head>
13 <body>
14 <table>
15     <tr>
16        <th>ID&nbsp&nbsp&nbsp</th>
17         <th>名字&nbsp&nbsp&nbsp</th>
18         <th>分类&nbsp&nbsp&nbsp</th>
19         <th>作者&nbsp&nbsp&nbsp</th>
20         <th>更新时间&nbsp&nbsp</th>
21         <th>浏览次数&nbsp&nbsp</th>
22         <th>发布状态&nbsp&nbsp</th>
23     </tr>
24     <?php foreach($records as $row) : ?>
25     <tr>
26         <th><?php echo $row[ZX_id]; ?></th>
27         <th><?php echo $row[ZX_name]; ?></th>
28         <th><?php echo $row[ZX_fenlei]; ?></th>
29         <th><?php echo $row[ZX_zuozhe]; ?></th>
30         <th><?php echo $row[gengxin_time]; ?></th>
31         <th><?php echo $row[liulan_cishu]; ?></th>
32         <th><?php echo $row[fabu_zhuangtai]; ?></th>
33         <th><a href="index.php?a=delete">删除</a></th>
34         <th><a href="index.php?c=newnewnewC&a=hanshu">新的页面展示</a></th>
35     </tr>
36     <?php endforeach ?>
37 </table>
38 </body>
39 </html>

 

  注释掉类加载的地方:

    技术分享

    技术分享

    技术分享

结果展示:

    技术分享

 

 

 


      

9)添加自动加载函数

标签:添加   bst   技术   控制器   处理   浏览次数   模板   分发   文件   

原文地址:http://www.cnblogs.com/xiaoyoucai/p/7399721.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!