Heim >Backend-Entwicklung >PHP-Tutorial > SpeedPHP框架学习-1.基础及MVC懂得

SpeedPHP框架学习-1.基础及MVC懂得

WBOY
WBOYOriginal
2016-06-13 13:09:591236Durchsuche

SpeedPHP框架学习-1.基础及MVC理解

SpeedPHP是一个以快速学习为基础的PHP框架,其架构较为简单,学习曲线较为简洁。这里以一个CMS系统为例,记录下使用SP的过程。

下载SP压缩包,解压缩放在服务器的根目录下,访问服务器就可以了。SP目录下文件有controller、model、SpeedPHP和tmp目录,其中SpeedPHP为系统文件,Controller为控制器文件。程序从index.php开始执行

<?php define("SP_PATH",dirname(__FILE__)."/SpeedPHP");
define("APP_PATH",dirname(__FILE__));
$spConfig = array(
       "db" =>array(
              'host' =>'localhost',
              'login' =>'root',
              'password' =>'root',
              'database' =>'test',
       ),
       'view' => array(
              'enabled' =>TRUE,
              'config'=>array(
                     'template_dir'=> APP_PATH.'/tpl',
                     'compile_dir'=> APP_PATH.'/tmp',
                     'cache_dir'=> APP_PATH.'/tmp',
                     'left_delimiter'=> ' '}>',
              ),
       )
);
require(SP_PATH."/SpeedPHP.php");
spRun();

上述程序定义了App和SP的路径,加载了数据库和视图层的配置,加载SP的核心库文件,最后运行整个系统。以上程序运行起来时,会首先到Controller目录下执行main类下的index方法。main类的程序如下:

<?php class main extends spController
{
       function index(){
              $tpl  = $this->spArgs("tpl","green");
              $guestbook =spClass("guestbook");
              $this->results= $guestbook->findAll();
              $this->display("{$tpl}/index.html");
       }
       function write(){ 
              $guestbook =spClass("guestbook");
              $newrow =array( 
                     'name'=> $this->spArgs('name'),
                     'title'=> $this->spArgs('title'), 
                     'contents'=> $this->spArgs('contents'),
              );
              $guestbook->create($newrow);
              echo "<ahref>return";
       }
}    </ahref>

从index.php过来默认调用main方法的index函数,在本例中这个函数首先设定模板名参数(tpl)。再新建一个model。使用model的findall方法,查找全部数据库信息。最后使用tpl模板显示结果。上述控制器程序,必须继承自spController类,方法名就是调用的action名。在程序中显式调用时路径为index.php?c=main&a=write。Model如下所示,是和数据库表同名的类文件。这个model必须继承自spModel,同时设置了主键和表名属性。

<?php class guestbook extends spModel
{
  var $pk = "id"; //每个留言唯一的标志,可以称为主键
  var $table ="guestbook"; // 数据表的名称
}

在tpl模板目录里的index.html文件下使用如下所示程序,格式化输出结果。

     <h4></h4>
     <p>:<br></p>
从MVC的角度看,model中的类,相当于模型,它对应数据库中的每一个表,且在控制器中进行被操作。而html文件相当于视图层,在SP架构中表现问TPL文件目录中的文件,他的程序调用等操作在Controller层中完成。控制层对应于Controller目录中的类文件,是程序的核心所在。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn