导航:首页 > 编程语言 > phpmvcsmarty框架

phpmvcsmarty框架

发布时间:2023-05-11 11:00:05

1. mvc框架怎么用

MVC (Model View Controller)本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据你可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。 模型-视图-控制器(MVC)是Xerox PARC在八十年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已被广泛使用。最近几年被推荐为Sun公司J2EE平台的设计模式,并且受到越来越多的使用 ColdFusion 和 php 的开发者的欢迎。模型-视图-控制器模式是一个有用的工具箱,它有很多好处,但也有一些缺点。
MVC是一个框架模式,它强制性的使应用程序的输谨毁入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自旦大处理自己的任务。
视图
视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Macromedia Flash和像XHTML,XML/XSL,WML等一些标识语言和Web services. 如何处理应用程序的界面变得越来越有挑战性。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。
模型
模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用像EJBs和ColdFusion Components这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
控制器
控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后确定用哪个视图来显示模型处理返回的数据。 现在我们总结MVC的处理过程,首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。编辑本段框架模式和设计模式的区别有很多程序员往往把框架模式和设计模式混淆,认为MVC是一种设计模式。实际上它们完全是不同的概念。[1] 框架、设计模式这两个概念总容易被混淆,其实它们之间还是有区别的。构件通常是代码重用,而设计模式是设计重用,框架则介于两者之间,部分代码重用,部分设计重用,有时分析也可重用。在软件生产中有三种级别的重用:内部重用,即在同一应用中能公共使用的抽象块;代码重用,即将通用模块组合成库或工具集,以便在多个应用和领域都能使用;应用框架的重用,即为专用领域提供通用的或现成的基础结构,以获得最高级别的重用性。 框架与设计模式虽然相似,但却有着根本的不同。设计模式是对在某种环境中反复出现的问题以及解决该问题的方案的描述,它比框架更抽象;框架可以用代码表示,也能直接执行或复用,而对模式而言只有实例才能用代码表示;设计模式是比框架更小的元素,一个框架中往往含有一个或多个设计模式,框架祥迟备总是针对某一特定应用领域,但同一模式却可适用于各种应用。可以说,框架是软件,而设计模式是软件的知识。 框架模式有哪些?MVC、MTV、MVP等等; 框架有哪些?C++语言的QT、MFC、gtk,Java语言的SSH,php语言的 smarty(MVC模式),python语言的django(MTV模式)等等 设计模式有哪些?工厂模式、适配器模式、策略模式等等 简而言之:框架模式是大智慧,用来对软件设计进行分工;设计模式是小技巧,对具体问题提出解决方案,以提高代码复用率、降低耦合度。编辑本段MVC框架模式的优点大部分Web应用程序都是用像ASP,PHP,或者CFML这样的过程化语言来创建的。它们将像数据库查询语句这样的数据层代码和像HTML这样的表示层代码混在一起。经验比较丰富的开发者会将数据从表示层分离开来,但这通常不是很容易做到的,它需要精心的计划和不断的尝试。MVC从根本上强制性的将它们分开。尽管构造MVC应用程序需要一些额外的工作,但是它给我们带来的好处是无庸质疑的。 首先,最重要的一点是多个视图能共享一个模型,正如我所提及的,现在需要用越来越多的方式来访问你的应用程序。对此,其中一个解决之道是使用MVC,无论你的用户想要Flash界面或是 WAP 界面;用一个模型就能处理它们。由于你已经将数据和业务规则从表示层分开,所以你可以最大化的重用你的代码了。 由于模型返回的数据没有进行格式化,所以同样的构件能被不同界面使用。例如,很多数据可能用HTML来表示,但是它们也有可能要用Macromedia Flash和WAP来表示。模型也有状态管理和数据持久性处理的功能,例如,基于会话的购物车和电子商务过程也能被Flash网站或者无线联网的应用程序所重用。 因为模型是自包含的,并且与控制器和视图相分离,所以很容易改变你的应用程序的数据层和业务规则。如果你想把你的数据库从MySQL移植到Oracle,或者改变你的基于RDBMS数据源到LDAP,只需改变你的模型即可。一旦你正确的实现了模型,不管你的数据来自数据库或是LDAP服务器,视图将会正确的显示它们。由于运用MVC的应用程序的三个部件是相互对立,改变其中一个不会影响其它两个,所以依据这种设计思想你能构造良好的松耦合的构件。 对我来说,控制器的也提供了一个好处,就是可以使用控制器来联接不同的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段。给定一些可重用的模型和视图,控制器可以根据用户的需求选择模型进行处理,然后选择视图将处理结果显示给用户。编辑本段MVC框架模式的缺点MVC模式的缺点是由于它没有明确的定义,所以完全理解MVC模式并不是很容易。使用MVC模式需要精心的计划,由于它的内部原理比较复杂,所以需要花费一些时间去思考。开发一个MVC模式架构的工程,将不得不花费相当可观的时间去考虑如何将MVC模式运用到应用程序中,同时由于模型和视图要严格的分离,这样也给调试应用程序带来了一定的困难。每个构件在使用之前都需要经过彻底的测试。另外由于MVC模式将一个应用程序分成了三个部件,所以这意味着同一个工程将包含比以前更多的文件。 过去MVC模式并不适合小型甚至中等规模的应用程序,这样会带来额外的工作量,增加应用的复杂性。但现在多数软件设计框架,能直接快速提供MVC骨架,供中小型应用程序开发,此问题不再存在。对于开发存在大量用户界面,并且逻辑复杂的大型应用程序,JAVA将会使软件在健壮性、代码重用和结构方面上一个新的台阶。尽管在最初构建MVC模式框架时会花费一定的工作量,但从长远的角度来看,它会大大提高后期软件开发的效率

2. php除了mvc还有什么架构

1.Yii

Yii是一个基于组件的高性能的PHP的框架,用于开发大规模Web应用。Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程。从MVC,DAO/ActiveRecord,widgets,caching,等级式RBAC,Web服务,到主体化,I18N和L10N,Yii提供了今日Web2.0应用开发所需要的几乎一切功能。而且这个框架的价格也并不太高。事实上,Yii是最有效率的PHP框架之一。

2.CodeIgniter

3.CakePHP

CakePHP是一个快速开发PHP的框架,其中使用了一些常见的设槐世计模式如ActiveRecord,AssociationDataMapping,FrontController以及MVC。其主要目标在于提供一个令任意水平的PHP开发人员都能够快速开发web应用的框架,而且这个快速的实现并没有牺牲项目的弹性。

4.PHPDevShell

PHPDevShell是一个开源(GNU/LGPL)的快速应用开发框架,用于开发不含Javascript的纯PHP。它有一个完整的GUI管理员后台界面。其主要目标在于开发插件一类的基于管理的应用,其中速度、安全、稳定性及弹性是最优先考虑的重点。其设计形成了一个简单的学习曲线,PHP开发者无需学习复杂的新术语。PHPDevShell的到来满足了开发者们对于一个轻量级但是功能完善,可以无限制的进行配置的GUI的需求。

5.Akelos

AkelosPHP框架是一个基于MVC设计模式的web应用开发平台。基于良好的使用习惯,使用它可以完成如下任务:

◆方便的使用Ajax编写views

◆通过控制器管理请求(request)及响应(response)

◆管理国际化的应用

◆使用简单的协议与模型及数据库通信

你的Akelos应用可以在大多数共享主机服务供应方上运行,因为Akelos对服务器唯一的要求就是支持PHP。因此,AkelosPHP框架是理想的用于发布单独web应用的框架,因为它不需要非标准PHP配置便能运行。

6.Symfony

Symfony是一个用于开发PHP5项目的web应用框架。

这个框架的目的在于加速web应用的开发以及维护,减少重复的编码工作。

Symfony的系统需求不高,可以被轻易的安装在任意设置上:你只需一个Unix或Windows,搭配一个安装了PHP5的网络服务器即可。它与差不多所有的数据库兼容。Symfony的价位不高,相比主机上的花销要低得多。

对于PHP开发者而言,使用Symfony是一件很自然的事,其学习曲线只有短短一天。干净的设计以及代码可读性将缩短开发时间。开发者可以将敏捷开发的原理(如DRY,KISS或XP等)应用在其中,将重点放在应用逻辑层面上,而不用花费大量时间在编写没完没了的XML配置文件上。

Symfony旨在建立企业级的完善应用程序。也就是说,你拥有整个设置的控制权:从路径结构到外部库,几乎一切都可以自定义。为了符合企业的开发条例,Symfony还绑定了一些额外的工具,以便于项目的测试,调试以及归档。

7.Prado

PRADO团队由一些PRADO狂热者组成,这些成员开发并推动PRADO框架数帆以及相关项目的进行。

PRADO的灵感起源于ApacheTapestry。从04年开始,PRADO成为SourceForge上的开源项目之一。这个项目目前进展到了3.x版本。

8.Zend

作为PHP艺术及精神的延伸,Zend框架的基础在于简单,面向对象的最佳方法,方便企业的许可协议,以及经过反复测试的快速代码库。Zend框架旨在建造更安全,更可靠的Web2.0应用及web服务,并不断从前沿厂商(如Google,Amazon,Yahoo,Flickr,StrikeIron和ProgrammableWeb等)的API那里吸收精华。

9.ZooP

ZoopPHP框架,意为Zoop面向对象的PHP框架。

这是个稳定,可伸缩并可移植的框架。从诞生到现在的5年间,已经在不少产品开发中被铅毕肢使用。Zoop是一个快速,有效并干净的框架。它的伸缩性很好,你可以只安装你需要的功能。

对代码并不很熟悉的开发者也可以通过Zoop快速的开发安全的web应用。熟练的开发者则可以更加将Zoop的弹性利用到极致。

Zoop建议将display,logic以及数据层(MVC)分开使用。

Zoop由很多组件和项目集合而成,其中包括smarty和prototypeAJAX框架,PEAR模块等。高效的核心组件提供了很多你原本需要自己编码来实现的功能。Zoop内置的纠错功能可以通过配置实现生产环境下的错误日志生成,这个错误日志提供了很多信息,可读性很高,可以更轻易的寻找并排除错误。

Zoop的一个特别之处在于其GuiControls,在PHP中是一个相当革新的想法。它提供了很多formwidgets与验证完整的集合到一起,并形成了一个可以轻松打造个性化GuiControls的框架。

10.QPHP

QPHP,意为快速PHP,它是一个与ASP.NET类似的MVC框架。基本上它是这样一个情况:

◆整合了Java和C

3. 为什么php的cms大都是mvc框架而不是基于smarty的原因是什么

一、Smarty简明教程
1.安装演示
下载最新版本的Smarty-3.1.12,然后解压下载的文件。接下来演示Smarty自带的demo例子。
(1)下载地址.
(2)在你的WEB服务器根目录下建立新目录,这里我在/var/www下创建yqting/目录,然后将解压之后的目录中的demo/和libs/目录复制到/var/www/yqting/目录下。
(3)这里要特别注意谈昌demo/目录下cache/和template_c/两个目录,一定要设置它们 为可读写权限。
chmod 777 cache/
chmod 777 template_c/
(4)启动apache。在浏览器中输入http://localhost/yqting/demo/index.php ,这样一个简单的Smarty demo就实现了。
2.Smarty目录结构
(1)以/var/www/yqting目录开始分析:
yqting/
├── demo
│ ├── cache 缓冲文件存放目录
│ ├── configs 配置文件目录
│ ├── index.php
│ ├── plugins 自定义的一些实用插件
│ ├── templates 模板目录
│ └── templates_c 编译后的文件存放目录
└── libs
├── debug.tpl debug模板
├── plugins 自定义的一些实用插件
├── SmartyBC.class.php 支持Smarty 2兼容
├── Smarty.class.php Smarty类定义文件
└── sysplugins Smarty核心功能插件,不需要进行修改
(2)添加自己定义的插件
上述目录结构中,其实最核心的部分是libs/目录,同时这部分也是不允许修改的。
而要添加自己的插件,一种方法是将自己定义的插件放在libs/plugins/目录下,另一种方式是 单独创建一个自己plugins/目录,同时还要创建cache/、configs/、templates/和templates _c/目哗侍卖录,而且要保证cache/和templates_c/目录的可读写权限。
不难发现,其实上述例子中,demo/目录就是一个包含了自己定义的插件的完整目录。 我们可以参照demo/目录来实现自己的程序。
3.实现一个简单的例子
(1)在/var/www/yqting/下创建目录weibo/,然后在weibo/目录下创建cache/、 configs/、templates/和templates_c/目录,修改cache/和templates_c/目录的权限为可读写。
(2)新建一个模板文件:index.tpl,将此文件放在/var/www/yqting/weibo/templates目录下,代码如下:
<html>
<head>
<metahttp-equiv="Content-Type" content="text/html;charset=gb2312">
<title>Smarty</title>
</head>
<body>乱逗
username:{$Name}
</body>
</html>
这段代码很简单,有什么不明白的继续往下看,不要着急!每一个做显示的.tpl文件都会对应一个处理业务逻辑的.php文件,下面介绍这个.php文件。
(3)新建index.php,将此文件放在/var/www/yqting/weibo/下,代码如下:
<?php
/*sample example */
require '../libs/Smarty.class.php';
$smarty = new Smarty();
$username = "Smarty";
$smarty->assign("Name",$username);
$smarty->display('index.tpl');
?>
其中require使用的路径一定要正确,可以参照上面的目录结构看一下!
(4)在Smarty3中,Smarty类的构造函数中已经指定了template_dir、compile_dir 、config_dir和cache_dir,不需要再次指定。
(5) 在浏览器中输入http://localhost/yqting/weibo/index.php,就可以看到输出的信息username:Smarty 了。
二、解释smarty的程序
我们可以看到,smarty的程序部分实际就是符合php语言规范的一组代码,我们依次来解释一下:
(1)/**/语句:
包含的部分为程序篇头注释。主要的内容应该为对程序的作用,版权与作者及编写时间 做一个简单的介绍,这在smarty中不是必需的,但从程序的风格来讲,这是一个好的风格。
(2)include_once语句:
它将安装到网站的smarty文件包含到当前文件中,注意包含的路径一定要写正确。
(3)$smarty = new Smarty():
这一句新建一个Smarty对象$smarty,简单的一个对象的实例化。
(4)$smarty->templates="":
这一句指明$smarty对象使用tpl模板时的路径,它是一个目录,在没有这一句时, Smarty默认的模板路径为当前目录的templates目录,实际在写程序时,我们要将这一 句写明,这也是一种好的程序风格。
(5)$smarty->templates_c="":
这一句指明$smarty对象进行编译时的目录。在模板设计篇我们已经知道Smarty是 一种编译型模板语言,而这个目录,就是它编译模板的目录,要注意,如果站点位于linux 服务器上,请确保 teamplates_c里定义的这个目录具有可写可读权限,默认情况下它的 编译目录是当前目录下的templates_c,出于同样的理由我们将其明确的写出来。
(6)分隔符 $smarty->left_delimiter与$smarty->right_delimiter:
指明在查找模板变量时的左右分割符。默认情况下为"{"与"}",但在实际中因为我们要 在模板中使用<script>,Script中的函数定义难免会使用{},虽然它有自己的解决办法,但习惯上我们将它重新定义为"{#"与"#}"或是"<!--{"与"}-->"或其它标志符,注意,如果在这里定义了左右分割符后,在模板文件中相应的要使每一个变量使用与定义相同的符号, 例如在这里指定为"<{"与"}>",html模板中也要相应的将{$name}变成<{$name}>, 这样程序才可以正确的找到模板变量。
(7)$smarty->cache="./cache":
告诉Smarty输出的模板文件缓存的位置。上一篇我们知道Smarty最大的优点在于它 可以缓存,这里就是设置缓存的目录。默认情况下为当前目录下的cache目录,与 templates_c目录相当,在linux系统中,我们要确保它的可读可写性。
(8)$smarty->cache_lifetime = 60 * 60 * 24:
这里将以秒为单位进行计算缓存有效的时间。第一次缓存时间到期时当Smarty的 caching变量设置为true时缓存将被重建。当它的取值为-1时表示建立起的缓存从不过期, 为0时表示在程序每次执行时缓 存总是被重新建立。上面的设置表示将cache_lifetime设置为一天。
(9)$smarty->caching = 1:
这个属性告诉Smarty是否要进行缓存以及缓存的方式。
它可以取3个值,0: Smarty默认值,表示不对模板进行缓存;1:表示Smarty将使用当前定义的 cache_lifetime来决定是否结束cache;2:表示 Smarty将使用在cache被建立时使用 cache_lifetime这个值。习惯上使用true与false来表示是否进行缓存。
(10)$smarty->assign("name", $username):
该数的原型为assign(string varname, mixed var),varname为模板中使用的模板变量,var指出要将模板变量替换的变量名;其第二种原形为assign(mixed var),我们要在后面的例子详细的讲解这个成员函数的使用方法,assign是Smarty的核心函数之一, 所有对模板变量的替换都要使用它。
(11)$smarty->display("index.tpl"):
该函数原形为display(string varname),作用为显示一个模板。简单的讲,它将分析 处理过的模板显示出来,这里的模板文件不用加路径,只要使用一个文件名就可以了,它路 径我们已 经在$smarty->templates(string path)中定义过了。

程序执行完后我们可以打开当前目录下的templates_c与cache目录,就会发现在下 边多出一些%%的目录,这些目录就是Smarty的编译与缓存目录,它由程序自动生成,不 要直接对这些生成的文件进行修改。
以上我简单的把Smarty程序中的一些常用的基本元素介绍了一下,在后边的例子中你可以看到将它们将被多次的使用。

4. php 的框架与模板

楼主的认知不对哦,以下为楼主解惑:

框架:在php源码的基础上,开发者将常用的功能进行二次封装形成的代码集合,其本身往往不具备任何可用的功能,其目的仅仅是使开发人员可以基于框架更快的开发出符合要求的应用。例如,不使用框架开发一个用户管理功能可能需要5天,使用框架可以将这个时间缩短到2天。实际上,对于任何一个项目,访问控制、数据库访问、文件处理等功能都是必备的,框架就是将这些常用功能进行了更易用的封装,避免开发人员在通用组件上重复开发,浪费时间。

模板:为了将PHP内容和html内容更好的分离为目的产生的一种应用,其主要目的是为了网页制作人员可以不去学习PHP就能修改页面的内容(可惜不学PHP还要学smarty,因此我个人并不觉得模板真的能带来什么实际的好处)

另外,如dede,DZ,PHPCMS等是基于PHP的产品,本身已经具备了大量的功能,安装之后就能使用,当然,因为需求的不同可能需要在该产品的基础上进行二次开发。

综述,模板没有太大的价值,完全可以在非用不可的时候再去学习,对于PHP开发人员来说,smarty可以立刻上手。它可以(也只能)被框架或PHP产品使用。框架是必须掌握的,定制性很强的项目必然都是基于框架开发的。PHP产品,如果你要开发的项目和某个PHP产品的功能达到80%以上的契合,那么应该考虑基于该产品进行开发。

一些网站提供简单的博客,留言板等的源码,不基于框架的小项目实际上只能称为练习,只有参考价值。

注:不是说不使用框架的项目就不算项目,事实上如果一个项目如果没有使用某某框架,其项目的一部分代码也必然的会具有框架的特征,即自定义框架也是框架。

5. 2018年,PHP的smarty还有必要学吗

没必要,现在用smarty的真心睁碰不多,很落伍,速度慢
smarty是用来做前后段代码分离的
其实我个棚前人觉得很鸡肋,对于现在前段来说链早清,后端部分代码也是能看懂的
稍微有点经验的都不在乎这些 效率还低,没啥突出的
我们公司就不用这个,之前接触的公司用这个的真心不多

6. 在php中,smart模板使用什么框架

smarty本身就是一个框架,如果非要问的话只能说是mvc框架了

7. PHP最常用的框架是那几个·_php开发框架排行

一直以来php框架被广泛利用,多半都是基于mvc架构模式的,还有基于事件驱动模式的,大致列举几个。ThinkPHP是一个性能卓越并且功能丰富的轻量级PHP开发框架,本身具有很多的原创特性,并且倡导大道至简,开发由我的开发理念,用最少的代码完成更多的功能,宗旨就是让WEB应用开发更简单、更快速。从1.*版本开始就放弃了对PHP4的兼容,因此整个框架的架构和实现能够得以更加灵活和简单。2.0版本更是在之前的基础上,经过全新的重构和无数次的完善以及改进,达到了一个新的阶段,足以达到企业级和门户级的开发标准。国人开发的PHP框架,目前最新版本为3.2.3版本。

Canphp是一个中国开源的php框架,主要的设计理念就是为了追求简单,减少php初学者的学习成本,而且追求高效率,模版类不提供其他标签,直接应用php的源代码,还有它是微内核设计,移植性强,松散耦合等特点,能集成到你任何一个系统里面。其中集成的http类相当的强大,采集图片速度相当的快,为什么这样呢?因为适用了模拟异步多进程的原理。

KYPHP是一个中国开源的PHP框架,kyphp严格遵守OOP和MVC的理念,具有控件化、可扩展性强。kyphp设计弯亏理念是自由、简单。既可以用php源码编程,也可以使用标签,支持多语言,多陆闹链数据库,多皮肤,多模型部署等,为程序员节省更多的时间。

InitPHP是一款轻量级的php开发框架,采用分层体系架构,适合大中型网站架构。提供丰富的library类库,以及简单的框架扩展机制。InitPHP还提供详细的开发文档,可以让您在使用该框架的时候更加简单实用。InitPHP实现了抽象DB层、分层体系架构、缓存无缝切换机制、简单模板机制、多模型部署机制、强大的安全体系,是您快速开发php应用的利器!

SpeedPHP是一款全功能的国产PHP应用框架系统。她以“快速开发、快速学习、快速运行”为理念,在提高团队开发效率、容易学习及使用、轻量级架构以增加执行速度等方面有着突出的表现。SpeedPHP框架是从实际运行的商业系统中取其精华而成的,在稳定性和运行速度上都非常出色;同时有着清晰的架构,更有利于提高团队开发效率,教程众多,入门容易,号称最适合初学者的PHP框架,快速带你进入PHP高手的行列。

CdvPHP一款简单开源PHP框架,灵感来源于DX,根据实际开发总结汇成快捷方便的轻量级框架。没有太多的硬性要求,也没有一本超厚的帮助手册。快速开发、部署、学习必备利器。KPHP即(kphp开源框架)是为了提高PHP开发效率而研发php开源框架,其核心简单精炼,代码安全并易于理解,功能更符合php学习开发的的需要,而且易于学习不改变程序员的开发习惯。ZendFramework在开发社区中有大量的追随者,它致力于Web2.0风格的程序。因为它众多的追随者组成的活跃用户开发的扩展支持,Zend被称为“ThePHPCompany”。Zend是一个(也可能不是)今天可用的最受欢迎的PHP开发框架。它有健壮的特征能够支持协作开发,它需要一些PHP的额外知识。

Codelgniter以它的简单易用,性能和速度而闻名。与Symphony不同,这款PHP开发框架对于共享主机的用户而言很理想,如果你想有一个小型覆盖面的框架。它提供了简单的解决方案,还有扩展的知识库,通过视频教程,用户指南和wiki来提供支持。

CakePHP无论对于初学者还是职业PHP开发者都是很好的选择。它基于与RubyonRails同样的原则而设计,它十分注重快速开发——这使得它成为一个非常好的用于RAD的开发框架。它快速增长的支持系统,简洁性和可测量性使得CakePHP成为今天可用的最受欢迎的PHP开发框架之早孙一。

Symfony是为那些更加职业的主要开发企业级程序的开发者而准备的——特别是Askeet和Yahoo!Bookmarks。这款开源PHP开发框架有着丰富的特性,做起这些来绰绰有余,它主要的缺点是比其他的框架略微慢一些。

Yii是一个基于组件、用于开发大型Web应用的高性能PHP框架。它将Web编程中的可重用性发挥到极致,能够显着加速开发进程。Yii(读作“易”),代表简单(easy)、高效(efficient)、可扩展(extensible)。

Seagull是一个良好的PHP开发框架,可以用来开发Web,命令行和GUI程序。这是一款无论对初学者还是职业程序员而言都及其简单的开发框架。对于初学者,Seagull提供一套包含样例程序的库,经过简单修改就能符合你的要求,而对于专家级程序员,Seagull提供了一整套设置选项——包括最佳练习,标准的和模块化的代码库——来快速简单地构建Web程序。Seagull有一个活跃的用户社区以及丰富的支持文档。

Laravel是一套简洁、优雅的PHPWeb开发框架(PHPWebFramework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。E是一款非常简洁优秀开源的超轻量级PHP框架,致力于追求简洁,安全,自由,高效,是中小型项目首选框架。框架构架合理,一键生成完全合乎规范的大型网站文件夹架构,网站架构一目了然。强大的外部类库支持,分布式存储,强大的缓存系统,内置smarty模板引擎,单入口MVC模式,面向对象编程,具有微内核设计,移植性强,松散耦合等特点,能集成到你任何一个系统里面。无论您是一个NewPHPer还是OLDPHPER,那么E框架是您的首选。学习完E框架后您可以快速并且轻松的驾驭其他框架,步入php高手之列。

DuoLamPHP是一款超轻量级的PHP框架,命名是按照多啦A梦动漫给改成的拼音形式。DP是一个简单、高效、上手容易的PHP框架,遵循apache开源协议。可以快速搭建出一个项目,作为一个超轻量级的PHP框架,完美支持MVC,完全面向对象。

Difeye框架是一款超轻量级PHP框架,由Kohana框架精简而来,主要特点有:数据库连接自动主从读写分离配置,适合单机和分布式站点部署;支持Smarty模板机制;支持mysql、nosql类的mongodb等第三方数据库模块;完全分离页面和动作,自动执行Page_Load入口函数,支持二级路由,将页面模块和页面上的动作完全分离,使站点升级迁移更简单;框架简单易学容易部署;

GalaxixPhp是一套专业的php建站框架,主要用于让用户在网上的建站,开发人员使用用GalaxixPhp可以大大的缩小中型甚至大型网站的开发周期。GalaxixPhp兼容JavaScript,可以无缝地与Javascript,flash,PHP等程序集成,适合构建展示、CMS、商城、论坛、博客、Wiki、等各种网站。并且官网上学习和说明文档以及视频教程齐全。是针对专业开发的人员的收费框架。并且官方正在不断推出更新更实用的框架插件。最新版本1.1.2.

PhpPeanuts是一个用以开发数据库后端应用的PHP框架,包含一个可扩展的动态脚手架用来创建一个完整的web应用,提供用户界面和ORM,包括CRUD操作、关联关系以及一些示例查询。phpPeanuts2.0完全支持PHP5,遵循ESTRICT标准,不再使用变量引用来传递对象;提升了灵活性;更独立的模块,以及迭代的对象复制等等。

RongFramework是一个国产的基于php5的面向对象开发框架,开发的主要目的是简化开发、高性能开发。支持数据库文件缓存、数据库通用操作及封装。简化CRUD代码编写。支持在线生成CRUD代码,只要选中数据表名称,就可以生成CRUD代码。不懂编程的人也可以做到。rongframework分为php代码模板(classRong_View_PHP)和Rong_View_Wudimei(无敌美模板引擎,类似smarty)两种模板机制。拥有良好的MVC机制和url美化方式、可以在代码中实现URL重写(由Rong_Countroller_Route实现)。

OpenbizFramework是为搭建企业应用而设计的PHP的基于面向对象的快速开发框架。它可以帮助专业软件开发人员和技术咨询专家来构建用于网络上的企业级应用。OpenbizFramework的设计目标是节省构建复杂应用系统的开发投入和缩短开发时间。借助于Openbiz的帮助,应用程序的开发将基于完善的MVC架构建立,以Metadata驱动为核心描述业务逻辑,支持多种ORM逻辑,并且有OpenbizAppbuilder作为图形化集成开发环境的快速开发平台。

8. 新手入门php要学哪些内容呢

1、WEB基础

要知道网站是什么东西,所使用的协议是怎么工作的,怎样把网站放在服务器上。


2、HTMLphp


HTMLphp是嵌入在HTML的语言,所以HTML是必须的。可以用HTML写出简单的静态的页面,放在本机的服务器上看看效果。


3、DIV+CSS


能够用DIV+CSS布局做出漂亮的精美静态网页。


4、php基础


学习php基础,如php语法,php变量,php流程控制,php函数,php数组应用,php字符串处理,php常用模块,php文件处理,php动态图像处理,会话控制等,就可以把静态页面变成动态的。这个阶段比较枯燥,主要是记忆,必须能够熟练应用。


5、MySQL


网站往往包含大量的信息,这些信息不可能都放在程序(php文件)中,需要MySQL来储存大量的数据信息。


6、Javascript


掌握了以上内容就可以搭建一个php基础网站,但是还需要靠Javascript来完成网站的特效告哪告和信息验证等。


7、php高级


作为一个可以上线运营的全功能网站,还要继续学习php高级知识,如php面向对象,数据抽象层PDO,MEMCACHE,高级SESSION,php的设计模式,MVC,smarty模板,主流框架的解读等内容,这个阶段需要多读优质的开源代码,多写代码。


8、Linux


正如大家所熟知的php较佳的搭配是LAMP(Linux+Apache+MySQL+Php)或LNMP(Linux+Nginx+MySQL+Php),那么显然在Linux系统下的php网站比在Windows下兼容性好,基于此我们需要知道在Linux下搭建php环境的方法以及Linux的日常管理命令,以便我们网站的日常缓册管理运营。


9、项目相关


这个阶段首先需要了解项目开发流程,需求分析,程序设计说明书,数据库设计说明书,编码规范,大流量/大数据架构,MYSQL深度优化,全文索引等内容。


目前为止学到这个阶段,已经可以算是php小牛了,要继续向php大牛进发就需要参与开发大型网站项目,以此练袜明手。北大青鸟认为参与大项目开发,实践为主。通过这阶段的学习就可以自主做企业网站、论坛、网页游戏等。


9. php的tp框架和mvc有啥区别

首先说Model吧。x0dx0a在TP中是一个表对应一个Model,而且普通Model中只是一些自动验证啊,自动完成啊、还有数据字段信息啊一些东西;而CI中的Model则完全不同,一个Model不必约束于一个表,也就是说名字为abc的Model中你也可以查询名字为def的表中的数据,而且可以定义方法完成一些数据查询,比如我可以在名为articles_model的Model中定义一个名字为get_articles的方法来获取所有文章信息,当某个Controller加载棚森游了这个Model后,就可以在相应的Controller中用x0dx0ax0dx0a1x0dx0a x0dx0a$this->articles_model->get_articles();x0dx0ax0dx0a来方便地获取所有文章信息,而对于TP来说,这些春兄操作只能在Action类中完成。2.0版的TP已经把View、Relation和Adv三个高级查询model库类定为不自动加载了,看了一下手册,感觉除了View视图查询容易用一点,另外两个都不怎么好用,感觉用起来太复杂,还不如用原生的SQL查询。CI的Model还有一个使我很喜欢的方法就是dbprefix方法,在使用原生的sql查询时使用这个函数使得修改数据库表名前缀后你的代码不需要经过任何改动。在TP中我没有发现类似的函数,当我用TP开发一个博客系统时,发现关联查询很麻烦,于是想用原生的SQL查询,却没有找到自动增加数据库表名前缀的方法,虽然可以自己修改TP的核心库来实现,但是还是觉得这样有点不太好。真的要感谢TP,如果不是TP,也许我就不会去关注CI了,当我那天看了几页CI的英文文档后,立马就对它产生的深厚的兴趣,于是第二天一起床就开始看CI的手册,虽然是从官网下的英文版的,不过它的手册写得很简洁、很周到,边看边操作,看完手册后我就几乎能熟练使用这个框架了。于是用它开发了一个博客系统。x0dx0aCI的Model类简单易用,TP的Model类功能相对来说要强大一些,但是用起来个人感觉没有那么方便。x0dx0a其次,对于View,从功能上讲,TP的View要更加强大一些,选择更多一些,在TP中你可以选择就用PHP作模板引擎,可以就用TP自身的模板引擎,也可以选择用smarty等其它第三链销方模板引擎。而在CI中就只能用CI内置的功能简单的模板引擎或者用原生的PHP代码作模板,个人觉得用PHP作模板更好一些,一来省去了学习另外的模板引擎语法的麻烦,二来执行效率更高一些。因些从View来讲,选择CI或者是TP都无所谓。x0dx0a再次是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方法),该控制器的其它的操作都没用了(不能访问了)。

10. 深入了解php框架mvc设计模式的原理

现在的PHP框架太多了,如yii codeigniterlaravel thinkphp 一看文档就一大堆英文资料,学也学不过来,可是上班时候公司要求你会这个,有的要求你会那个,看书上的理论又假大空,不知道在说什么东西,看实际的例子代码又太复杂庞大,所以今天就做一个简单的小例子主要来给中级阶段的php同学了解MVC的共同原理,了解这些原理自己也可以设计一个mvc 框架
先创建一个主流框架的目录,包含控制器,数据模型,视图显示,3个文件夹,和一个入口文件
现在来设计一个路由地址,http://localhost/mvc/index.php?c=控制器名&a=方法名¶m=参数名;然后写在入口文件里的获取路由的代码,如下图所示,这样写就能获取不同的控制器名字和不同的方法,由入口文件获取这些控制器和方法名,参数后就传入指定的控制器方法名中
现在写控制器的类和方法,便于接受入口文件传入的值,控制器的作用就是协调调用数据处理和显示样式
现在来写好数据处理类,数据处理主要是依靠mysql等和视图显示类,视图主要就是把内容显示出来,一般由smarty代替,数据处理文件名model.php,视图显示index.php
现在输入http://localhost/mvc/index.php?c=控制器名&a=方法名¶m=参数名 看他们都显示出来了,一个简单的框架就完成了,大家有机会自行扩展吧!
那么控制器和视图,数据的关系是什么呢?一般具体中是从入口文件得到用户输入的控制器和方法名,参数,再传给用户指定的控制器,再由控制器(a)把参数传给数据处理(m),m处理后返回给a,a 将得到的内容传给视图显示(v),v再把他显示出来。这只是一个简单的MVC设计模式而已,大家可以在这上面设计出比较复杂的MVC模式

阅读全文

与phpmvcsmarty框架相关的资料

热点内容
苹果笔记本t2加密芯片怎么打开 浏览:796
安卓如何把手机投屏至电视 浏览:737
方舟编译器现在可提速哪些软件 浏览:58
微信加密为什么是黑屏 浏览:473
android去电状态 浏览:602
苹果13如何加密视频 浏览:813
linuxweblogic缓存 浏览:67
云服务器不同地域 浏览:946
python闹钟怎么打 浏览:686
虚拟主机服务器有什么区别 浏览:833
算法与程序的奥秘章节检测 浏览:377
找pdf 浏览:529
与服务器连接断开如何处理 浏览:833
服务器维修预计十分钟什么意思 浏览:170
黑马程序员主打教学是什么 浏览:41
python九乘法表怎么编写 浏览:974
思维方式pdf 浏览:656
tcc社区app怎么注册 浏览:941
央视网下载加密 浏览:454
命令行访问服务器 浏览:36