导航:首页 > 编程语言 > php面向对象框架

php面向对象框架

发布时间:2022-05-25 03:59:07

A. 关于php面向对象的问题,求对框架原理了解的大神。

自己设计框架学习意义远大于实用意义,设计的过程中可能会浪费你不少时间,而且你可能以后永远不会(99%)用到自己设计的框架,但是对你深入了解PHP还是很有帮助的。

(我自己也有在设计一个框架,如有兴趣,可以发给你一起研究)


大部分PHP MVC框架中心思想都是一样的:

首先要单文件入口(index.php),就是所有的访问都通过一个文件来控制,这样就能控制流程了。要实现这个功能就需要apache或者nginx的设置来配合了。以apache为例,最经典的.htacess:

<IfMolemod_rewrite.c>
RewriteEngineOn
RewriteCond%{REQUEST_FILENAME}!-d
RewriteCond%{REQUEST_FILENAME}!-f
RewriteRule^(.*)$index.php?_url=$1[QSA,L]
</IfMole>

此文件的作用就是如果如果访问的文件或者文件夹存在的话就直接调用文件(用来处理访问/public/css, /public/js之类的请求),不然的话就将请求转发给index.php。此时index.php可以调用$_GET['_url'] 来获得请求。


#一般框架遵循的规则是:[地址]/[控制器名字]/[方法名字]/[参数/参数]
#请求:localhost/test/helloworld/china/shanghai
#在index.php里就可以访问$_GET['_url']来获得字符串:/test/helloworld/china/shanghai

然后将字符串explode()成array,根据默认规则获得以下信息(如果愿意可以自己写一个路由而不用默认方法解析路径)

控制器:test

方法:helloworld

参数:china, shanghai


先在test.php中:

classtest
{
publicfunctionhelloworld($country,$city)
{
echo'Hello,Iamfrom',$country,$city;
}
}


然后在index.php中:

#这里可以自己定义一个__autoload方法来让PHP自行require_once()class文件,就不用自己一个一个include()了。

#初始化一个控制器实例:
$test=newtest();

#调用控制器中的方法,并递交参数
#请查阅PHP函数call_user_func_array()的使用方法
call_user_func_array(array($test,'helloworld'),array('china','shanghai'));

这样就完成了一个简单的MVC框架,剩下的就是继续完善他,你可能需要学习以下知识:

  1. PHP __autoload()的设计和命名空间(namespace)的设计

  2. 各种软件设计模式:singleton, dependency injection, lazy loading

  3. OOP(面向对象编程)PHP类的继承模式(extends class), PHP接口(implements interface)

  4. PHP数据库操作类: mysqli类, pdo类

  5. HTTP请求,header中的各种参数设置

  6. Web Programming的安全事项, 如xss防护

  7. 《代码简洁之道》,《PHP Zend Coding Style》


希望能帮助到你!

B. 自学PHP两个月了,不会用框架,熟悉面向对象思想。想做一个项目,应该要用什么样的架构呢

看项目是什么类型的就用什么框架,自学一定要会至少一个框架。比如商城类一般用ecshop,企业站套站就用dedecms,或者想做好一点就用thinkphp,zend,CI,这些都可以的。

C. 为什么说 ThinkPHP 不是纯面向对象的框架

面向对象是一种思想,而不只是单纯对类的实例化。
ThinkPHP属于轻量型的任务式框架,相对于函数式编程有更易于维护的过程封装,可以很好地把很多任务进行分解分类存放于Model、Controller、View以及扩展Library当中,但它还是不是属于一个有机体,只是对函数式编程的一种优化

D. PHP进阶:面向对象及TP5框架初识

面向过程就是你把代码封装成子过程或函数(procere),然后依次去做一件事情;
面向对象就是你把要做的事情抽象成对象,然后告诉具体的那一个对象去做。
面向对象三大特性(封装,继承,多态)使得在做复杂的事情的时候效率和正确率得到保证。

在实际的编程中“面向对象”和“面向过程”两种开发思想一定是同时都用到了的,现在宣传最多的“面向对象”实际上是以面向对象为主题,面向过程为辅助,往往过分了夸大其作用。

E. php 面向对象框架是怎么加载类文件的

有没有定义命名空间啊namespace,如果有这个的话,其下面的代码肯定有use某个类文件

F. php中都有哪些框架,为什么要用框架呢,用框架有什么好处

以下为十个目前最流行的基于MVC设计模式的PHP框架。

1. Yii

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

2. CodeIgniter

CodeIgniter是一个应用开发框架——一个为建立PHP网站的人们所设计的工具包。其目标在于快速的开发项目:它提供了丰富的库组以完成常见的任务,以及简单的界面,富有条理性的架构来访问这些库。使用CodeIgniter开发可以往项目中注入更多的创造力,因为它节省了大量编码的时间。

3. CakePHP

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

4. PHPDevShell

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

5. Akelos

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

◆方便的使用Ajax编写views

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

◆管理国际化的应用

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

你的Akelos应用可以在大多数共享主机服务供应方上运行,因为Akelos对服务器唯一的要求就是支持PHP。因此,Akelos PHP框架是理想的用于发布单独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的灵感起源于Apache Tapestry。从04年开始,PRADO成为SourceForge上的开源项目之一。这个项目目前进展到了3.x版本。

8. Zend

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

9. ZooP

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

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

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

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

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

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

10. QPHP

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

◆整合了Java和C#的美感

◆除去了在其他PHP框架中使用的Perl形式的意义含糊的语言

◆大量基于OOP的概念

国内的thinkphp也很不错,使用框架可以避免重建底层函数等,加快开发速度。

G. php内置库中关于面向对象和面向过程的支持问题

目前php中比较热门的框架如thinkphp,laravel,ci,yii等都是用的面向对象的思想写的。用哪一种都是可以的,
这个需要看项目的需求来选择的,比如有些公司用的ecshop(一个成熟的产品),这个时候我就要用面向过程来写,因为这个ecshop就是用的面相过程来做的。如果项目是用thinkphp来做,
那我就用面向对象来写。

H. 编程php学到什么基础可以入手框架会面向对象cms可以入手吗学框架前需要打哪些基础

框架的话mvc当然要了解了。学完基础语法,数据库,面向对象以后你就可以接触框架了,现在一般的框架都是mvc模式的,所以mvc你一定要知道才能更好的理解框架。你要是以后做php程序员的话除非你要做cms二次开发,不然cms没有必要看。只要我上面说的那些你都学的差不多了,就开始学习thinkPHP吧。看看手册啥的比较快,要是不嫌费时间的话看视频教程也可以啊,关键是要自己动手写,光看是看不会的。希望能帮到你,谢谢。

I. PHP框架设计思想都是面向对象的吗

简单业务需求使用“面向过程”思路倒是不错,简单快捷。然而随着业务逻辑增加,功能扩展及维护,慢慢会发现,之前的面向过程开发思路,渐渐不好使了。
曾经遇到一个项目,多城市选择,既可以选择省,也可以选择市,但最多只能为3个,且不能重复。当时js用的就是面向过程方式写的,外加封装几个函数。但越往后,越发现,这种代码思路,后期维护,功能扩展,简直就是大坑。

J. PHP框架与PHP类的区别

用框架能造房子,用类只能造个门。
简单的说,框架提供了快速搭建网站需要的全部组件。而类可能只是其中的一个组件。
php的类是一个面向对象的概念。
对于面向对象的框架你可以说这个框架是由很多类组成的,但是不一定说拿很多类就能组成一个框架,上面说过了,需要快速搭建网站需要的全部组件才能叫完整的框架。
------------------------------
用框架有用框架的好处,不用自然也有不用的好处,框架可以加快开发效率,成熟,稳定,但框架有局限性,瓶颈也很多,还有一定的门槛,比较成熟的开发团队都是自己开发框架的,因为适用更灵活,不过我还是推荐你使用框架来进行开发,无论你是新手还是老手。
框架我接触过一些,国产的thinkPHP和fleaPHP(qeePHP)比较容易上手,有中文支持,适合新手,但是功能明显不足,国外的象symfony,
yii这类就比较强劲,国内用的最多的还是zend,中文文档很全,中文用户也多。
你可以来我们的网站看下框架相关的知识。

阅读全文

与php面向对象框架相关的资料

热点内容
pythonrequests假死 浏览:866
原生安卓怎么用nfc模拟卡 浏览:952
施耐德串口服务器是什么 浏览:499
小程序模板不给源码靠谱吗 浏览:977
程序员喷苹果 浏览:490
手机里面照片文件夹字母怎么写的 浏览:254
php中实现翻译功能用哪个函数 浏览:503
病毒加密文件恢复 浏览:116
无线路由如何设置成服务器 浏览:138
QQ飞车源码更新 浏览:899
虚拟机中编译器 浏览:476
台达PLC编译按钮在哪里 浏览:141
非编程计算器多少钱 浏览:655
房本还完贷款解压 浏览:818
中国程序员有出名吗 浏览:548
亳州云服务器 浏览:632
程序员最难的面试 浏览:894
配音秀app怎么诵读 浏览:751
sparkcore源码 浏览:100
程序员中年生活 浏览:355