很多站长朋友们都不太清楚mvc博客php,今天小编就来给大家整理mvc博客php,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php怎么实现mvc? 2、 博客系统的几种流行的博客系统 3、 php的tp框架和mvc有啥区别? 4、 详解PHP实现MVC的几种方法 php怎么实现mvc?MVC三个字母的含义:
M:Model 模型,负责数据库操作。
V:View 视图,负责调用Model调取数据,再调用模板,展示出最终效果。
C:Controller 控制器,程序的入口,决定改调用哪个View,并告诉View该做什么。
下面是一个超级简单的MVC结构实现:
Controller.php
include 'Model.php';
include 'View.php';
class Controller {
private $model = '';
private $view = '';
public function Controller(){
$this->model = new Model();
$this->view = new View();
}
public function doAction( $method = 'defaultMethod', $params = array() ){
if( empty($method) ){
$this->defaultMethod();
}else if( method_exists($this, $method) ){
call_user_func(array($this, $method), $params);
}else{
$this->nonexisting_method();
}
}
public function link_page($name = ''){
$links = $this->model->getLinks();
$this->view->display($links);
$result = $this->model->getResult($name);
$this->view->display($result);
}
public function defaultMethod(){
$this->br();
echo "This is the default method. ";
}
public function nonexisting_method(){
$this->br();
echo "This is the noexisting method. ";
}
public function br(){
echo "<br />";
}
}
$controller = new Controller();
$controller->doAction('link_page', 'b');
$controller->doAction();
Model.php
class Model {
private $database = array(
"a" => "hello world",
"b" => "ok well done",
"c" => "good bye",
);
//@TODO connect the database
//run the query and get the result
public function getResult($name){
if( empty($name) ){
return FALSE;
}
if( in_array($name, array_keys( $this->database ) ) ){
return $this->database[$name];
}
}
public function getLinks(){
$links = "<a href='#'>Link A</a>nbsp;nbsp;";
$links.= "<a href='#'>Link B</a>nbsp;nbsp;";
$links.= "<a href='#'>Link C</a>nbsp;nbsp;";
return $links;
}
}
View.php
class View {
public function display($output){
// ob_start();
echo $output;
}
}
博客系统的几种流行的博客系统流行的博客系统主要分为以下几种:
①WordPress
1.是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把 WordPress当作一个内容管理系统(CMS)来使用。
2.WordPress是一款个人博客系统,并逐步演化成一款内容管理系统软件,它是使用PHP语言和MySQL数据库开发的。用户可以在支持 PHP 和 MySQL数据库的服务器上使用自己的博客。
3.WordPress有许多第三方开发的免费模板,安装方式简单易用。不过要做一个自己的模板,则需要你有一定的专业知识。比如你至少要懂的标准通用标记语言下的一个应用HTML代码、CSS、PHP等相关知识。
②emblog(现收费下载,可去源码之家免费下载源码)
1.它是一款基于PHP语言和MySQL数据库的开源、免费、功能强大的个人或多人联合撰写的博客系统(blog)。基于PHP和MySQL的功能强大的博客及CMS建站系统
③zblog(asp和PHP版)
1.支持主题、插件等功能和配置,打造个性化博客;
2.zblogasp版本支持Access+MYSQL双数据库,可实现静态化、伪静态、动态页面;
3.zblogphp版本[1] 支持支持MySQL(MariaDB)和SQLite双数据库,可实现伪静态、动态页面;
4.广泛支持IE(最新版后台不支持IE6)、Chrome、Firefox、Opera、Safari多种浏览器;
④typecho(代码只有4KB超轻博客系统)
1、Magike博客程序是基于MagikeFramework开发,保证了程序的效率和安全性,但是这个MVC的框架结构比较复杂,更适合用于开发大型项目,如果在博客程序开发中可以精简掉MagikeFramework自带的模板引擎以及其他一些代码,就可以提供给用户一个更精巧的程序,这与我们希望代码越少越好的初衷一致,这直接推动了新版本从内核开始重 写。
2、作为一个使用GPL V2发布的开源程序来说,虽然我们极力保证代码的规范性,但还是存在一些不足,比如程序注释不够详细,加上开发团队在对国际化的理解上走了一点弯路,与其逐步完善,不如从根本上重来,让新程序的开源血统更加纯洁
推荐:
wordpress开源程序!
优点:
1、WordPress 功能强大、扩展性强,这主要得益于其插件众多,易于扩充功能,既有seo推广插件All in one seo插件也有静态缓存插件cos-html-cache,基本上一个完整网站该有的功能,通过其第三方插件都能实现所以功能;
2、wordpress搭建的博客对seo搜索引擎友好,收录也快,排名靠前(尤其是安装谷歌网站地图插件Google XML Sitemaps和百度网站地图插件Baidu-Sitemap后,效果更佳!);
3、适合DIY,如果你是喜欢丰富内容的网站,那么wordpress可以很好地符合你的胃口。
4、现成主题很多,网站上一大片都是wordpress的主题,各色各样,应有尽有!
缺点:
1、wordpress源码系统初始内容基本只是一个框架,需要时间自己搭建;
2、插件虽多,但是不能安装太多插件,否则会拖累网站速度和降低用户体验;
3、服务器空间选择自由较小,由于是php语言搭建的,在windows主机空间上并不能完美支持 wordpress,所以一般都选择完美支持php语言的linux主机空间!而在国内大多数服务器都是windows系统的,而境外较多linux系 统,所以很多站长只能买境外空间,网站速度自然比不上国内空间速度!
4、wordpress备份和网站转移比较繁琐,需要涉及到数据库!
5、静态化较差,确切地说是真正静态化做得不好,如果要想对整个网站生成真正静态化页面,目前还做不好,最多只能生成首页和文章页静态页面,所以只能对整站实现伪静态化!
php的tp框架和mvc有啥区别?首先说Model吧。\x0d\x0a在TP中是一个表对应一个Model,而且普通Model中只是一些自动验证啊,自动完成啊、还有数据字段信息啊一些东西;而CI中的Model则完全不同,一个Model不必约束于一个表,也就是说名字为abc的Model中你也可以查询名字为def的表中的数据,而且可以定义方法完成一些数据查询,比如我可以在名为articles_model的Model中定义一个名字为get_articles的方法来获取所有文章信息,当某个Controller加载了这个Model后,就可以在相应的Controller中用\x0d\x0a\x0d\x0a1\x0d\x0a \x0d\x0a$this->articles_model->get_articles();\x0d\x0a\x0d\x0a来方便地获取所有文章信息,而对于TP来说,这些操作只能在Action类中完成。2.0版的TP已经把View、Relation和Adv三个高级查询model库类定为不自动加载了,看了一下手册,感觉除了View视图查询容易用一点,另外两个都不怎么好用,感觉用起来太复杂,还不如用原生的SQL查询。CI的Model还有一个使我很喜欢的方法就是dbprefix方法,在使用原生的sql查询时使用这个函数使得修改数据库表名前缀后你的代码不需要经过任何改动。在TP中我没有发现类似的函数,当我用TP开发一个博客系统时,发现关联查询很麻烦,于是想用原生的SQL查询,却没有找到自动增加数据库表名前缀的方法,虽然可以自己修改TP的核心库来实现,但是还是觉得这样有点不太好。真的要感谢TP,如果不是TP,也许我就不会去关注CI了,当我那天看了几页CI的英文文档后,立马就对它产生的深厚的兴趣,于是第二天一起床就开始看CI的手册,虽然是从官网下的英文版的,不过它的手册写得很简洁、很周到,边看边操作,看完手册后我就几乎能熟练使用这个框架了。于是用它开发了一个博客系统。\x0d\x0aCI的Model类简单易用,TP的Model类功能相对来说要强大一些,但是用起来个人感觉没有那么方便。\x0d\x0a其次,对于View,从功能上讲,TP的View要更加强大一些,选择更多一些,在TP中你可以选择就用PHP作模板引擎,可以就用TP自身的模板引擎,也可以选择用smarty等其它第三方模板引擎。而在CI中就只能用CI内置的功能简单的模板引擎或者用原生的PHP代码作模板,个人觉得用PHP作模板更好一些,一来省去了学习另外的模板引擎语法的麻烦,二来执行效率更高一些。因些从View来讲,选择CI或者是TP都无所谓。\x0d\x0a再次是Controller了,在CI中的应用的控制器是继承自核心类Controller的,TP中的控制器则是继承于核心类Action。不过还是有不同的,在TP中,你可以把一些公共的变量或者在多个控制器中都要执行的东西放在一个action里,假如这个action文件为CommonAction.class.php ,在它的_initialize方法中可以执行一些在多个控制器中都要执行的代码或者初始化一些多个控制器都要使用的变量,这样,应用的其它action只要继承CommonAction 就可以实现了。因为框架在加载相应action时首先会自动加载那个CommonAction的。而在CI中就没有这个方便的功能了,但是也可以自己写一个library,在该library类的__construct方法里放一些代码,然后在每个控制器中都加载这个library,这样也可以实现像TP一样的功能。不过相对来说麻烦了一些。TP还有一点比较灵活的就是,在这个控制器(action)里面可以执行那个控制器中的函数(比如用A或者R函数来实现),在CI中则不行,你不能在这个控制器中执行那个控制器中的函数。还有就是TP可以定义一个名为EmptyAction的控制器,当所有控制器都找不到时,就调用这个Empty控制器。这一点如果与empty方法配合,可以使得URL大大缩减。虽然CI和TP都支持空操作,不过这二者的空操作名称不相同,实现的优先级也不相同。在TP中的空操作(_empty方法)优先级是最低的,也就是说当当前控制器的所有操作都找不到时才调用这个空操作;在CI中则恰恰相反,只要存在空操作(_remap方法),该控制器的其它的操作都没用了(不能访问了)。
详解PHP实现MVC的几种方法相信所有习惯了使用MVC来组织自己的项目的人,让他选择一个新的项目构架时,一定不会放弃MVC。传统的面相过程式的开发方式在处理中型以上的应用时,就开始显得力不从心。即便我们能够快速的完成需求,但是在需求发生变更后或者进行后期维护的时候,我们会深深地陷入我们早期搭建的陷阱中。什么是MVC?关于MVC的定义和解释,可以说多种多样。我们可以在Wiki或者[2]中找到更为详尽的解释,这里我并不打算,也没有能力进行深入的讲解,从PHP开发的角度来讲,MVC可以概括为:视图(The View):一说到视图,我们很多人都会想到模板引擎(诸如Smarty等等)。其实就是各种各样的输出,比如说html模板和Javascript文件等。模块(The Model)模块代表了程序的逻辑,在企业应用中通常称为业务逻辑层。一般来讲,这一层完成的工作是把原始的数据处理成按照我们设计的数据结构存储的有意义的数据序列,并将这些数据交给视图去处理。通常情况下, 模块中会利用一个数据抽象类来进行与数据操作有关的处理。 关于MVC的是否适合PHP的争论也很多,人们不断的讨论MVC是否适合PHP[3],现在也已经有了很多的MVC框架,诸如PHP MVC Frameworks中列出的[4]。那么,为什么人们这么热衷于MVC,我们为什么要使用MVC在我们的设计中呢。为什么用MVC?MVC最早是用来解决桌面GUI的编程问题,最早的MVC框架应该是Sun在1999年提出的Model 2,后来演变成了Struts。MVC带给人们深刻的印象,但是我们在使用的过程中,却并没有认真的想过为什么使用MVC。在传统的桌面应用中,一旦Model中有时间发生,我们可以主动的让View界面进行刷新,从而展示后台发生的变化。而在Web应用中,我们似乎限于传统的Http的Request/Response的方式,我们似乎没有办法让用户端进行更新。这一段讨论,并不是认为MVC不能够用来进行WEB应用的开发,而是觉得从某种程度上来说,他还不是最合适的。关于使用MVC的争论还有很多[1],但是相信所有习惯了使用MVC来组织自己的项目的人,让他选择一个新的项目构架时,一定不会放弃MVC。如何PHP实现MVC?下面是一个超级简单的MVC结构实现,甚至连数据源都用了一个内置的固定数组,虽然简单,但其实众多的PHP Framework核心实现的思想应该和这个是差不多的,只不过一些framework提供了更多的方便开发者使用的工具,我也想自己来实现一个PHP的框架,目前正在着手策划中,也希望自己能够从框架的开发中学习到更多的PHP设计思想和方法。
关于mvc博客php的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于mvc博客php mvc webapi的详细内容...