PhpMVC框架整合smarty模板

最近整合了跟着视频整合了一下mvc框架和smarty模板,收获挺多的,对面向对象的模式理解更深刻了,加深对mvc框架的搭建和运行流程了解。

以下是框架主入口的代码:

<?php      

                    final class Hd{
                       static public function run(){
                          //    echo "run"."<br/>";                          
                              self::selfConf();#运行时候定义一些常量
                              self::createDemoApp();
                              self::loadSysFile();
                              self::appRun();
                         }
                         
                       static private function selfConf(){
                          //  echo "selfConf"."<br/>";
                            $control=isset($_GET['c'])?$_GET["c"]:"index";
                            $method=isset($_GET['m'])?$_GET['m']:"index";
                          //  echo $control.'<br/>';
                           // echo $method."<br/>";
                            define("METHOD",$method);
                            define("CONTROL",$control);
                            define("PATH_HD",dirname(__FILE__));#获取框架文件的核心目录d
                            define("PATH_ROOT", dirname(PATH_HD));#网站根目录
                            define("PATH_TEMP",PATH_HD."\\temp");#临时文件夹
                            define("PATH_APP",PATH_HD."\\". 'APP');#应用文件夹
                            define("PATH_CONTROL",PATH_APP.'\\'.'CONTROL');#控制器文件夹
                            define("PATH_TPL",PATH_APP.'\tpl');#模板目录
                            
                            
    //                            echo PATH_HD."<br/>";
//                                
//                                echo PATH_ROOT."<br/>";
//                                
//                                echo PATH_TEMP."<br/>";
//                              
//                                
                       //   echo PATH_APP."<br/>";
//                            
//                                
                        //         echo PATH_CONTROL."<br/>";
//                                
//                                
//                                echo PATH_TPL."<br/>";
//                           
//                           
                           
                         
                       }
                       static private function  createDemoApp(){
                        //   echo "demoApp";
                            
                            if(is_dir(PATH_TEMP ) ||  is_dir(PATH_CONTROL)) return ;//如果临时文件夹和控制器文件夹存在就不执行下面的代码
                           
                            self::createDir();#创建运行目录
                            $data=<<<str
<?php  
    //后盾网,人人当后盾
class IndexControl extends Control{
     function Index(){
          echo "<h1 style='border:solid 1px #eee ;padding:20px '> welcome to houcdun wang</h1>";
                  }
                              }
                         
  ?>                                 
str;
                            //echo $data;
                            $controlFile=PATH_CONTROL."\\IndexControl.class.php";
                            //echo $controlFile;
                            file_put_contents($controlFile, $data);
                  
                       }
                   
                       
                static private function createDir(){
                    //echo "CreateDir"."<br/>";
                    //echo is_dir(PATH_APP);
                   if(is_dir(PATH_APP)) return;
                    
                    $dirs=array(
                        PATH_TEMP,
                        PATH_APP,
                        PATH_TPL,
                        PATH_CONTROL
                    );
                 //   var_dump($dirs);
                    foreach($dirs as $d){
                   
                        
                      $dir=true;
                      is_dir($d) || $dir=mkdir($d,0777,true);//不存在该目录就新建目录
                      if(!$dir){
                            echo "创建".$d."目录失败"."</br>";
                      }
                        
                    
                }
                }
                    
                    
                  static private function loadSysFile(){
                     // echo "LoadSysFile<br/>";
                      $files=array(
                          PATH_HD.'/core/functions.php',
                          PATH_HD.'/core/Control.class.php',
                          PATH_HD.'./core/Model.class.php'  
                      );
                      
                      foreach($files as $f) {
                           is_file($f)&& include($f);
                      }
                      
                      
                  }
                  
           static private function appRun(){
               include PATH_HD.'\\config.inc.php';
            
               $controlFile =   PATH_CONTROL."\\".CONTROL.'Control.class.php';
            //   echo $controlFile."<br/>";
               is_file($controlFile) || die("FILE not exists");
              
               //print_r(get_included_files());
               include $controlFile;
               
              
               $control=CONTROL.'Control';
              
               $method=METHOD;
             
            
               $obj=new $control;
               $obj->$method();
               
           }
           }
                
        Hd::run();    
      


?>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值