Ⅰ 为什么说php是首选的Web开发语言
作者:2gua
链接:https://zhuanlan.hu.com/p/19904737
来源:知乎
着作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
1. PHP是为Web而生的,天然与HTML、JavaScript有亲近感,也就是原生味儿十足。即使是PHP与HTML代码混杂,从某种角度而言,也能帮助初学者直观地了解Web技术机理,坏事有时候也是好事。另一方面,开源PHP的C风格、Unix/Linux范儿让其在Apache、Nginx等Web应用服务器上表现优异。总之,PHP与Web是浑然天成的结合方式。
2. 要掌握PHP,我建议从备受诟病的“代码凌乱”编程风格 -- 或许是从PHP与HTML混合编程开始,待直观了解Web开发技术之后,再考虑代码组织和结构的重构,这样有助于自己以更加原生的方式掌握Web的秘密。那么,什么是更加原生的方式呢?随手举个例子:典型的404状态码。
用PHP的实现(404.php、404.html):
<?php
header("HTTP/1.1 404 Not Found");
include("404.html");
exit;
?>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
</head>
<body>
<p>404页面。</p>
</body>
</html>
再看看如http://ASP.NET MVC中的实现:
public ActionResult Details(int id)
{
return HttpNotFound();
}
虽然封装得很好,但是,跟PHP方式比较就知道,http://ASP.NET MVC中的实现确实比较抽象不够直观,而且是在控制器里直接定义和跳转的。在PHP中,显而易见,一下就明白了代码中header的含义:HTTP-Version、Status-Code、Reason-Phrase。
顺带说说Rails中的处理方式,抽象程度也很高:
render :template => '......', :status => 404
3. 与PHP类似的还有JSP,但JSP往往需要与JEE其他技术模块相配合使用,体系足够庞大,需要有长期准备。其他如http://ASP.NET MVC、Rails等框架的抽象度较高,也不建议作为首选。
4. 不得不提Node.js,Node.js是目前很火的技术,号称“全栈”的希望所在,常拿来跟PHP争论比较:什么并发、线程、进程等等。在这里无意评论孰优孰劣,但至少PHP可以让你多掌握一门技术,而不止是JavaScript。此外,PHP的大型业务的成熟应用案例可是比比皆是吖。
5. 那么,是不是该一直坚持指哪打哪的“代码凌乱”方式呢?当然不应该。PHP提供的OOP特性足够强大,在技能与理解程度达到一定高度时,完全可以以OOP的方式来组织代码。在PHP领域,各种框架非常多,比如Laravel、CI、FuelPHP、Yii、Symfony、Zend Framework等等,届时随便选一个都可以进行规范化开发。“代码凌乱”关键不在于工具本身,而在于人自己!要知道用Java也能写出烂代码。
6. PHP的资料非常丰富。
7. 最后,有一个稍稍题外话的看法,早前我还觉得在RESTful方式不断普及下,由于RESTful Web Services使用标准的 HTTP 方法(GET/PUT/POST/DELETE)来抽象Web服务能力,服务端的重点将移至MC,而服务端视图模版的应用会减少,客户端的支撑需求会越来越多。比如各种前端库、框架将得到快速推进,越来越多的需求处理会前置到前端来处理。但现在我感觉这种状态考虑得太过理想了,就像数据频繁大量更迭及处理的场景,更适合服务端(如模版引擎)完成;再具体地,又如大数据量的分页,如果都在浏览器中实现,性能就一定会有很大问题。此外,频繁Ajax调用、客户端缓存机制的缺失,也将引起种种问题,再进一步来看,单页面应用(SPA)也就并非适合每一个业务场景,服务端视图模版还是有比较多的适用领域的。
Ⅱ php如何实现以个restful接口
你好!
把传统的PHP Web接口改成符合RESTful风格的Web接口有什么用处?
其实,这里最好用“好处”这个词来代替“用处”,因为传统的Web接口实现方式同样能够实现业务需要(所以这不是一个必须的事情,需要自己根据业务需求综合判断是否需要采用),而改用“RESTful风格”会有一些额外的“好处”:
统一的风格能够让各方更加便利的进行交互,也带来了更好的兼容性(这是一个所有遵循一定规范所带来的共通的好处,就像大家都说普通话,交流起来多方便啊)
对资源的操作正好对应相应的HTTP动作(GET、POST、PUT、DELETE),而这些动作正好可以满足我们对资源状态进行操作的需要,也就是说想对资源状态进行什么样的操作就选择什么样的动作,而这些动作又是HTTP协议本身提供的,多么和谐自然啊(就是题主的摘录内容)
请求所造成的影响明确,或者说副作用明确,比如GET肯定是安全的,PUT和DELETE肯定是幂等得,POST肯定是不安全的(这里的肯定是建立在API设计完全遵循“RESTful风格”基础上的)
良好的符合“RESTful风格”的URI设计,可以让Web接口的功能和整体结构更加清晰,仅仅通过URI就能方便的推测出来接口是做什么的,以及多个资源之间关联性
利用HTTP内容协商(content negotiation)实现资源的多重表述,比如请求方可以把自己需要的格式放到头信息的Accept字段中表述(如Accept: text/json),这样同样一个URI就可以输出多种格式而不再需要在URI里面特别加上一个type=json的参数了
客户端、代理服务器等可以根据HTTP协议规范进行相应的额外处理,比如Cache
希望能够帮到你!
Ⅲ php有哪些框架
PHP的框架有很多,这里说一部分供大家参考:
国内框架:ThinkPHP, Canphp, KYPHP, InitPHP, SpeedPHP, CdvPHP,KPHP。
国外着名框架:Zend Framework,Codelgniter,CakePHP,Symfony,Yii,Seagull,Laravel。
小型框架:E,DuoLamPHP,Difeye,GalaxixPhp,PhpPeanuts,Rong Framework,Openbiz Framework。
Ⅳ php 哪个restful框架好用
Yii框架
Yii是一个基于组件、用于开发大型 Web 应用的 高性能 PHP 框架。Yii 几乎拥有了 所有的特性 ,包括 MVC、DAO/ActiveRecord、I18N/L10N、caching、基于 JQuery 的 AJAX 支持、用户认证和基于角色的访问控制、脚手架、输入验证、部件、事件、主题化以及 Web 服务等等。Yii 采用严格的 OOP 编写,Yii 使用简单,非常灵活,具有很好的可扩展性。
yii中文社区:http://www.yiichina.com/
Ⅳ 新人刚接触 PHP,哪种框架比较容易上手
题主如果是一个刚接触PHP的新人的话,可能会觉得框架很多,各个框架都有各自的特点,难以掌握,其实虽然每个框架的特点不一样,但是框架的思路都是差不多的,如果你用熟了,就会觉得什么框架都差不多。不过刚开始接触这些的话,了解框架还是要有先后顺序的。
总之你要在框架中,学习如何去使用它,一开始往往会觉得很难,但是熟练了之后你会发现原来的框架实际上是相同的,框架可以随心所欲的使用也不是什么难事,只要你不放弃的坚持学习就可以做到。
Ⅵ php restful api怎么用
Wax for iPhone这种框架在开发时,旨在把Lua脚本语言和原生Objective-C应用编程接口(API)结合起来。这意味着,你可以从Lua里面,使用任何和全部的Objective-C类及框架。
从技术上来讲,Wax结合了Objective-C类和原生C代码。Lua语言嵌入了C语言,然后Objective-C类并入到其中。
为什么使用Wax
Wax是免费的、开源的。与其他一些基于Lua的移动开发解决方案不同,Wax是个开源框架,只需要你花一点点时间就可以上手,不需要花钱。不喜欢Wax的工作方式,或者发现实施方面的缺陷源代码可免费获取,你总是可以改动源代码,以满足自己的需要。
可以利用原生API。这意味着,为教Objective-C而编写的教程很容易由Lua for Wax来改动和编写。这还意味着,你的应用程序在外观感觉上总是如同原生应用程序,不过又得到了用Lua这种高效脚本语言编写代码可以节省时间的好处。
可以使用Xcode。这意味着,模拟器和设备部署都轻而易举,不会轻易与未来的iOS版本决裂。
可以利用所有现有的Objective-C库。如果你有一个Objective-C类是以前编写的,不需要改动,就可以将它用在Lua中——只要把它放入到Xcode。Three20之类的库也是一样。只要按照正常指令来添加库,就可以使用Lua代码访问它们。
可以利用Wax Lua模块。Wax有几个内置的Lua模块,使得异步HTTP请求和JavaScript对象标注(JSON)创建/解析极其容易而快速(因为模块是用C编写的)。
没必要管理内存。不再需要操心内存分配之类的事务。Wax为你处理这一切。
Lua类型自动转换成对应的Objective-C类型,反之亦然。 这意味着,如果你调用了需要NSString和NSInteger的某个方法,但传送了Lua字符串和Lua整数,Wax会为你搞定转换工作。这种转换功能强大,甚至可以处理复杂的Objective-C特性,比如选择器。这样就行,我刚在后盾网问老师的,希望能帮到你。Ψ( ̄(エ) ̄)Ψ努力吧
Ⅶ 怎么用PHP开发API供其他客户端调用
一、接口的分类:
1、URL类型的接口
URL
路由带参数式的接口!这个很好做!只要有过Web开发经验的人都能完成!这种接口数据不够隐蔽性,可以直接在浏览其中看到,如支付宝的交易请求URL。需
要加一个MD5签名,和服务器端的再次向支付宝服务器发送验证!虽然soap方式传递的数据隐蔽性很好!但为了数据安全,难免也需要进行数据签名。
2、SOAP类型的接口
无关编程语言、无关平台、扩展性很好,要实现一个SOAP 型的接口,有两种方式:一种有WSDL文件方式、一中无WSDL文件方式!
对
于热爱研究型的人来说,使用第一种方式可以让你清楚的了解PHP是怎么创建了一个Web
Service!但第一种对于新手来说,创建一个XML格式的WSDL文件,是比较难的,这你的先了解熟悉什么是XML!学会XML语法!但对于一个急于
解决问题的人来说!没有这么多的时间去熟悉!所以这是件烦恼的事!
二、PHP环境设置
先配置下PHP的soap环境支持:
找到php.ini文件
;extension=php_soap.dll
删除掉";" ,重启apache服务器
为了便于测试,需要关于wsdl缓存
方式1:
配置文件:php.ini 选项 soap.wsdl_cache_enabled 设置为0
方式2:
代码头添加:ini_set('soap.wsdl_cache_enabled', "0"); //关闭wsdl缓存
三、有WSDL文件方式创建
在
这里先介绍标准的webservice。 那么如何创建wsdl呢?对于PHP来说这确实是件很不容易的事情,有人说用zend
studio创建很方便,这是一种方法。但对于那些不喜欢用zend studio的人来说,会觉得创建一个web service还要安装zend
studio,太强人所难了。
在这里介绍一个简单的方法,到网上下载SoapDiscovery.class.php类,里面有个公用方法:getWSDL,这个方法末尾是用的 return,那么,你修改一下这个方法:
//return sprintf('%s%s%s%s%s%s', $headerWSDL, $portTypeWSDL, $bindingWSDL, $serviceWSDL, $messageWSDL, '</definitions>');
//生成wsdl文件,将上面的return注释
$fso = fopen($this->class_name . ".wsdl" , "w");
fwrite($fso,
sprintf('%s%s%s%s%s%s', $headerWSDL, $portTypeWSDL, $bindingWSDL,
$serviceWSDL, $messageWSDL, '</definitions>'));
现在生成wsdl的类有了,SoapDiscovery.class.php(源码在最末尾)。
再准备一个提供服务的Service.php类文件或者函数就可以创建wsdl了!
Ⅷ 如何使用PHP搭建一个restFul风格的API系统
单入口,常见使用index.php,一般设置全局常量和debug模式
2、统一路由格式,带上版本号,并尽量采用映射的模式,比如:/v0/proct => /mole/controller/action
3、GET,POST,PUT,DELET,PATCH等常见的请求,采用$_POST,$_GET或者php://input的方式获取传来的数据。
你可以去后盾人平台看一下,里面的东西不错
Ⅸ PHP如何编写RESTful接口的方法实例演示
就收参数
处理参数
返回json格式数据
Ⅹ php开发restful式api中,客户端的登录,验证机制如何该设置
oauth的令牌机制还是很适合api的身份验证的 实际上就是一种SESSION的变种
本身也没多少难度 就是按照预先几个平台约定的key ,请求端通过发送key加某个规则(比如平台id)加密后构成的签名码,发送到服务器端,服务器根据提供的身份参数查询获得预先约定好的key 再用key加规则(比如平台id)加密后确定无误就算通过 :很像密码验证吧。
然后给对方返回一个无序的加密字符串,就是令牌啦。令牌要存在服务器上,一般存数据库里和平台请求的来源对应,设置有效期保存。
客户端拿到这个令牌后就可以通过令牌访问了,(和SESSION几乎一模一样)在服务器上交互,只需要验证令牌的正确性和有效期,就可以放行进行操作了。
大致如此,细节有很多变化,机制运作差不多就这个样子。