首页 > 后端开发 > 正文

php跨框架调用方法 THINKPHP 中跨控制器调用类,跨模型调用类

2023-09-23 23:09:20 | 我爱编程网

最近经常有小伙伴私信询问php跨框架调用方法 THINKPHP 中跨控制器调用类,跨模型调用类相关的问题,今天,我爱编程网小编整理了以下内容,希望可以对大家有所帮助。

php跨框架调用方法 THINKPHP 中跨控制器调用类,跨模型调用类

php异步调用方法是什么


php异步调用的方法:1、在返回给客户端的HTML代码中,嵌入AJAX调用,或者嵌入一个img标签,src指向要执行的耗时脚本;2、使用popen函数打开一个指向进程的管道,该进程由派生给定的command命令执行而产生。
【相关学习推荐:php编程(视频)】

1. 最简单的办法,就是在返回给客户端的HTML代码中,嵌入AJAX调用,或者,嵌入一个img标签,src指向要执行的耗时脚本。
这种方法最简单,也最快。服务器端不用做任何的调用。
但是缺点是,一般来说Ajax都应该在onLoad以后触发,也就是说,用户点开页面后,就关闭,那就不会触发我们的后台脚本了。
而使用img标签的话,这种方式不能称为严格意义上的异步执行。用户浏览器会长时间等待php脚本的执行完成,也就是用户浏览器的状态栏一直显示还在load。
当然,还可以使用其他的类似原理的方法,比如script标签等等。
2. popen()
resource popen ( string command, string mode );//打开一个指向进程的管道,该进程由派生给定的 command 命令执行而产生。打开一个指向进程的管道,该进程由派生给定的 command 命令执行而产生。
所以可以通过调用它,但忽略它的输出。
pclose(popen("/home/xinchen/backend.php &", 'r'));这个方法避免了第一个方法的缺点,并且也很快。但是问题是,这种方法不能通过HTTP协议请求另外的一个WebService,只能执行本地的脚本文件。并且只能单向打开,无法穿大量参数给被调用脚本。
并且如果,访问量很高的时候,会产生大量的进程。如果使用到了外部资源,还要自己考虑竞争。
3. 使用CURL
这个方法,设置CUROPT_TIMEOUT为1(最小为1,郁闷)。也就是说,客户端至少必须等待1秒钟。
$ch = curl_init();
$curl_opt = array(CURLOPT_URL, '',
CURLOPT_RETURNTRANSFER, 1,
CURLOPT_TIMEOUT, 1,);
curl_setopt_array($ch, $curl_opt);
curl_exec($ch);
curl_close($ch);4. 使用fsockopen
这个方法应该是最完美的,但是缺点是,你需要自己拼出HTTP的header部分。
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />
";
} else {
$out = "GET /backend.php / HTTP/1.1
";
$out .= "Host: www.example.com
";
$out .= "Connection: Close
";
fwrite($fp, $out);
/*忽略执行结果
while (!feof($fp)) {
echo fgets($fp, 128);
}*/
fclose($fp);
}所以,总体来看,最好用,最简单的还是第一种方法。
最完美的应该是最后一种,但是比较复杂
相关学习推荐:编程视频

php跨框架调用方法 THINKPHP 中跨控制器调用类,跨模型调用类

PHP网站怎么调用别家的API?

首先我们要知道的是,API有很多种表现形式,对于不同形式的API,调用方式也是不同的。

API常见模式

1、RPC(远程过程调用协议)

RPC是一种进程远程调用的方式,主要用于异构平台间的进程通信,是Client/Server模式。RPC可以使用多种协议(如:HTTP协议、自定义协议等)和序列化方式(如:JSON、XML、二进程),RPC是基于TCP或者自定义协议来实现的,性能较高,但耦合度也较高。

2、SOAP(简单对象访问协议)

SOAP其实是基于HTTP和XML的实现,基于HTTP协议。在耦合度、维护性、扩展性上比RPC要好,但是性能上会低于RPC,特别是XML这种消息传递的方式会影响性能。 我爱编程网

虽说SOAP是基于HTTP的,但是SOAP提供了Session/Cookie机制来维持状态,所以一些需要状态的(如:调用某些API前需要进行认证)业务中还能看见SOAP的身影。

3、RESTful

RESTful其实是一种架构风格,它不是一种标准!RESTful可以理解为是Json+HTTP+POST/GET/PUT/DELETE的组合,同样是基于HTTP协议的。REST相比于SOAP和RPC,更加简洁明了。

RESTful的无状态特性使得其适合在分布式环境中使用,所以现在的API都推荐使用RESTful设计风格。

PHP中如何调用第三方提供的API?

上面讲到了,API有很多种模式,对于不同模式我们调用的方法就不同。下面介绍下PHP如何计用常见模式的API。

1、RPC

如果对方提供的API是RPC形式的,那一般都会提供PHP版本的Client给你,你按说明进行调用即可。

另外PHP生态中也有不少RPC框架,如:PHPRPC、Thrift、gRPC等。

2、SOAP

PHP5内置有php_soap扩展,此扩展实现了PHP对WebServices的支持。

3、RESTful

说白了RESTful就是HTTP协议,只不过使用了不同的HTTP动词进行请求区分,我们推荐使用cURL类库进行RESTfulAPI的请求。

不建议使用file_get_contents函数进行HTTP类型的API调用,很多人习惯使用此函数调用HTTPAPI,但是又不设置超时时间,当API不稳定时严重影响了网站速度。

php跨框架调用方法 THINKPHP 中跨控制器调用类,跨模型调用类

THINKPHP 中跨控制器调用类,跨模型调用类

new Authmodel(); 是用你model目录下创建Authmodel, 它是继承 Model .
比如你在Authmodel文件中写一个function fun(){.....}函数;

$auth = new \Model\AuthModel();
$auth->fun();就可以直接调用
而M('Auth')相当于model. 只是传了'auth'表命 , 只能M('Auth')->where()->.....之类的操作

以上就是我爱编程网小编整理的内容,想要了解更多相关资讯内容敬请关注我爱编程网。
与“php跨框架调用方法 THINKPHP 中跨控制器调用类,跨模型调用类”相关推荐
php中tp框架封装类调用 TP中如何调用第三方类库中的静态方法
php中tp框架封装类调用 TP中如何调用第三方类库中的静态方法

php封装一个用户类,里面有登录注册方法,这个要怎么写第一步:login.php//登陆方法publicfunctionlogin(){//如果用户名和密码为空,则返回登陆页面if(empty($_POST['username'])||empty($_POST['password'])){$data['verifycode']=rand(1000,9999);//生成一

2023-10-04 06:45:32
php怎么能跨框架调接口 如何用php调用外部接口json数据
php怎么能跨框架调接口 如何用php调用外部接口json数据

php如何调用jsp接口php调用jsp接口的方法是使用curl_exec函数实现的。使用函数:file_get_contents($url);$URL=';param2=value2';//定义访问jsp的url//初始化curl$ch=curl_init();//设置curl返回结果curl_setopt($ch,CURLOPT_RETURNTRANSFER,

2023-10-06 17:20:21
Php框架类如何调用 如何使用thinkPHP来调用自己写的类呢?
Php框架类如何调用 如何使用thinkPHP来调用自己写的类呢?

PHP框架开发的接口怎么运行?装nginxmysql和php环境,然后把代码文件放到nginx的html文件目录下,然后配置nginx和php,如果是本地访问就浏览器通过localhost/代码文件目录名/访问,如果是域名访问就要把域名绑定到服务器Ip然后nginx中配置域名,然后浏览器通过域名访问如何使用thinkPHP来调用自己写的类呢?可以用import函数.例如,你可以把ph

2023-09-22 05:34:45
ci框架引入php文件 如何在php文件中调用ci控制器中的方法
ci框架引入php文件 如何在php文件中调用ci控制器中的方法

用php的CI框架怎么写登录和注册第一步:login.php//登陆方法publicfunctionlogin(){//如果用户名和密码为空,则返回登陆页面if(empty($_POST['username'])||empty($_POST['password'])){$data['verifycode']=rand(1000,9999);//生成一个四位数字的验证码

2023-09-18 04:56:49
php前台调用框架 thinkphp3.2.3前台怎样调用后台方法
php前台调用框架 thinkphp3.2.3前台怎样调用后台方法

php现在比较热门实用的框架有哪些?PHP作为强大的Web开发语言,上手非常容易,开发效率很高,不需要像Java一样进行编译后才能执行,但是如果用原生的PHP来开发还是会存在开发速度慢,或者说后期维护难度大,缺乏代码严谨性等问题,我就需要使用目前流行的MVC框架,那么现在有哪些PHP框架更方便,更快捷呢?1.Laravellaravel可以说是从去年到今年都是最热门的PHP框架

2023-09-09 01:12:33
php远程方法调用框架 php框架搭建方法?
php远程方法调用框架 php框架搭建方法?

php框架搭建方法?php框架搭建步骤:1.项目初始化首先我们在自己的web目录下创建我们的项目目录,我暂且把项目命名为hellovod,因此我的电脑目录就是:D:laragonwwwhellovod。在该目录下创建composer.json文件。2.添加入口文件初始化完毕后,我们来配置入口文件。在hellovod目录下新建一个public文件夹,并在该文件夹下创建

2023-09-18 12:36:09
php框架如何访问控制器 thinkphpview怎么调用controll
php框架如何访问控制器 thinkphpview怎么调用controll

thinkphp5怎么获取当前的模块,控制器和方法名thinkphp5系列需要获取当前的模块、控制器以及方法名称,可以使用自带的Request类,也可以使用request助手函数。接下来举例说明:假设我们现在访问的地址是index/member/add,我们来获取这个地址的模块、控制器、方法名称1、获取模块名:echo"当前模块名称是:".request()-&gt;mo

2023-10-05 02:45:53
php框架怎么创建控制器 thinkphpview怎么调用controll
php框架怎么创建控制器 thinkphpview怎么调用controll

thinkphp怎么使用命令行生成模块用Yeoman开发的Thinkphp的生成器可以通过命令行1.建立Thinkphp项目2.生成控制器/模型/视图3.创建新代码模块提供类似Laravel的artisan的功能,刚刚发布了第一个预览版本~可以通过npm安装使用npminstall-gyogenerator-thinkphp自己用PHP书写一个类和一个控制

2023-10-05 04:25:47