小编今天整理了一些php写api接口用框架 PHP开发用哪种框架相关内容,希望能够帮到大家。
PHP后端接口怎么写
php后台接口的实现方法
1. 首先,要设置一个入口文件
入口文件的话会引入到固定的api文件(如下):
<?php
define("APPAPI_ALLOW_REQUEST_LOGIN", 'Y');
//是否允许传用户名密码参数的形式登录。如为Y则参数用户名密码参数和basic方式都可以,如为N就只能basic方式。
//define("SITE_TEMPLATE_PATH", '/local/templates/mobile_app_api');
//如不定义,默认是local/templates/bitrix24。可以考虑将/local/templates/mobile_app留给h5前端展示用。
新开/local/templates/mobile_app_api给api用。如不指定SITE_TEMPLATE_PATH直接IncludeComponent,则对组件代码进行debug时,
会出现web端头部页面。
//require_once($_SERVER['DOCUMENT_ROOT'] . '/bitrix/header.php'); //需要模板页面
Header('Access-Control-Allow-Origin: *');
Header('Access-Control-Allow-Headers: origin, content-type, accept');
Header('X-Content-Type-Options: nosniff');
require("remote_auth.php");
//app方式每次请求session_id()都会变,导致挂钩在session_id()下面的所有session信息如fix_session_id也都不认。
所以登录完毕后要拿到session_id(),并在后续接口一起传给接口,接口再去指定session_id。
//$_REQUEST['org_sessid']='06q75330o31se1cf4d7vl1bdm4';
if(!empty($_REQUEST['org_sessid'])){
$org_session_id=$_REQUEST['org_sessid'];
session_id($org_session_id);
session_start();
//echo session_id();
//echo "<pre>";print_r($_SESSION);exit;
}
require_once($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php"); //无需模板页面
$APPLICATION->IncludeComponent("vdg:mobile.data", "", Array());
exit;
?>2. 其次,在引入的组件的component.php中获取参数,确定模板的使用
<?php
...
include_once(dirname(__FILE__) . "/functions.php");//引入类的方法的文件
...
if ($_REQUEST["mobile_action"])//Executing some action
{
$APPLICATION->RestartBuffer();
$action = $_REQUEST["mobile_action"];
//CRestUtil::sendHeaders(); //跨域header
$actionList = new Bitrix\Mobile\Action();
$actionList->executeAction($action, $arParams);
CMain::FinalActions();
die();
}
elseif ($_REQUEST["captcha_sid"])//getting captcha image 通过 /vdg/app_api.php?captcha_sid=1 可以得到图形验证码。
{
$APPLICATION->RestartBuffer();
$actionList = new Bitrix\Mobile\Action();
$actionList->executeAction("get_captcha", $arParams);
die();
}
elseif ($_REQUEST["manifest_id"])//getting content of appcache manifest
{
include($_SERVER["DOCUMENT_ROOT"] .\Bitrix\Main\Data\AppCacheManifest::MANIFEST_CHECK_FILE);
die();
}
elseif(!$USER->IsAuthorized() || !$isSessidValid)
{
$APPLICATION->RestartBuffer();
header("HTTP/1.0 401 Not Authorized");
if(Bitrix\MobileApp\Mobile::getInstance()->getInstance() != "android")
{
//header("Content-Type: application/x-javascript");
header("Content-Type: application/json");
header("BX-Authorize: ".bitrix_sessid());
}
jsonError('201', '请先登陆');
//echo json_encode(Array("status" => "failed", "bitrix_sessid"=>bitrix_sessid()));
die();
}
?>3.在具体的模板中运用类的方法根据参数获取相应的数据,并返回客户端结果
如果成果返回“ jsonSuccess(questions);”如果失败返回“jsonError(′201′,questions);”
如果失败返回“jsonError(′201′,questRes[“ERROR”]);”或其他错误讯息。
推荐教程:PHP视频教程
我爱编程网
如何使用PHP的CodeIgniter框架来编写API接口
将解压的框架包放到的你的php环境的www/api目录下:这里建立api目录作为测试项目目录。并运行localhost/api/index.php,就可以看到环境界面了
2
在对应的目录下修改控制器中的方法:默认在application/controller/welcome.php文件中的
3
修改welcome.php中的index方法,看到的欢迎页面从这里加载的
4
开始写我们的api接口吧,写api接口前要链接我们的数据库,配置数据库信息在application/config/database.php中
5
连接我们配置好的数据库,回到我们的welcome.php中
6
去github官网中下载codeIgniter支持的api接口包
7
解压文件包,并将对应的文件放到指定的目录
8
修改我们控制器的方法名,把index该为index_get,在该方法中实现我们的业务需求。这里只是简单带领大家。没有做过多的操作。
9
在浏览器中运行我们的接口,根据不同的参数返回不同的数据。
获取的是json数据
localhost/api/index/php?username=张三&format=json
获取的是xml数据
localhost/api/index/php?username=张三&format=xml
有用点个赞,大牛路过勿喷!
PHP开发用哪种框架
PHP开发常用框架
一、CI框架
CI框架是一个简单快速的PHP MVC轻量级框架,它执行效率高,快速简洁,代码量少,适合中小型项目开发,也可以做大型项目,但扩
展能力不是很好。
优势:框架比较简单,适合入门开发,易学,上手快,静态化很容易,文档比较详细。
缺点:由于框架较小,所以功能不完全,比如使用mongoDB就要自己实现接口,对数据库的操作不够安全(写入操作)。对大型项目支持
不好。
开发工作流程:
1、index.php作为前端控制器,初始化运行CodeIgniter所需要的基本资源。
2、Router检查HTTP请求,以确定谁来处理请求。
3、如果缓存(Cache)文件存在,它将绕过通常的系统执行顺序,被直接发送给浏览器。
4、安全(Security)。应用程序控制器(ApplicationController)装载之前,HTTP请求和任何用户提交的数据将被过滤。
5、控制器(Controller)装载模型、核心库、插件、辅助函数,以及任何处理特定请求所需的其它资源。
6、最终视图(View)渲染发送到Web浏览器中的内容。如果开启缓存(Caching),视图首先被缓存,所以将可用于以后的请求。
CI的url模式:
Ci支持的url模式默认为pathinfo形式,也就是使用/隔开。其中//localhost/citest/index.php/ 是固定的,表示的就是入口文件
例如://localhost/citest/index.php/hello/index
二、ThinkPHP框架
TP框架是一共快速兼容简单的轻量级国产PHP开发框架,使用面向对象的结构和MVC模式进行开发。它可以支持Windows、Linux等服
务器,并且支持MySql、Sqlite等多种数据库和PDO扩展。
其自身包含底层架构、兼容处理、基类库、数据库访问层、模版引擎、缓存机制、插件机制、角色认证、表单处理等常用的组件,并且对
于跨版本、跨平台和跨数据库移植都比较方便。适合中小型项目开发。
优势:简单易用(Model,Controller,View负责各自的工作),它拥有支持XML标签库技术的编译型模版引擎,支持两种模版标签,动态编
译,缓存技术。还支持自定义标签库,具有独特的数据验证和自动填充,MD5数据加密等功能。
缺点:模版比较固定,导致思想容易固化。
三、Laravel框架
Laravel是一套简洁,优雅的PHP WEB开发框架。集合了PHP比较新的特性,以及各种的设计模式,是一个适合学习的框架,但要求PHP
基础扎实熟练。适合大中型项目的开发。
优势:
1、支持Composer
2、框架结构比较清晰,注重代码的模块化(抽象了中间件,任务,服务等)和可扩展性,路由系统快速高效
3、支持处理跨站请求伪造,在进行form表单post提交时,必须传入{{ csrf_field() }}
4、Laravel 的社区很强大,具有丰富的扩展包及工具
5、具有缓存、身份验证、任务自动化、hash加密、事务等功能
6、独特的 .env环境文件,方便了系统的配置和不同平台的开发
缺点:基于组件式的框架,相对有点臃肿
Laravel路由方法:laravel的路由功能很强大,包括
1、基本路由Route::get('/',function(){ return'HelloWorld';});
2、带参数路由Route::get('user/{id}', function($id){ return 'User '.$id;});
3、路由过滤参数Route::get('user/{id}/{name}',function($id,$name){ //}) -> where(array('id'=> '[0-9]+', 'name' =>'[a-z]+'));
4、子域名路由等
5、控制器路由,例如下面的一些样式
Route::resource('article','ArticleController'); //restful方式(具体包括get/post等)
Route::controller('article','ArticleController'); //restful方式(具体包括get/post等)
Route::get('user/login','UserController@login');//非restful方式 get
Route::post('user/i','UserController@login');//非restful方式post四、Yii 框架
Yii Framework是一个基于组件、用于大规模web应用开发的高性能PHP开源框架,是目前最具效率的PHP框架之一。适合大型重量型
web应用开发。
优势:
1、纯OOP开发,模型使用方便
2、支持命令行工具开发,可以快速的创建一个web应用程序的代码
3、具有高度的可重用性和可扩展性
4、开发速度快,性能优异且功能丰富
5、支持composer包管理工具
缺点:model 层考虑较少,文档中中文文档较少。要求php技术精通水平,OOP编程也要很熟练
推荐教程:ThinkPHP教程
以上就是我爱编程网小编为大家带来的内容了,想要了解更多相关信息,请关注我爱编程网。