PHP: Web专用开发利器,有10多年的经验积累,但其他领域基本不涉及,扩展性不强,企业应用少。
Python: 近期的明星语言,面向对象、简单高效、可扩展性强,但Web开发积累少,成熟度低。
ppython开源项目既是结合使用PHPPython两种语言,取其所长、补其所短,面向企业WEB领域的开发技术。此技术可以理解为PHPPython相结合的技术,也可称为PHPPython混合编程技术,或者PHP调用Python服务的技术,也有人习惯称之为前台PHP后台Python的技术框架。
特点
优势互补: PHPPython都是流行的脚本语言,PHP非常适合网页编程;而Python可以当作轻量级JAVA,二者结合可发挥各自优势。
高效稳定Apache+PHP组合可带来优异的WEB服务稳定性,而Python的语言能力可补充如连接池、事物管理、分布式、对象模型等高端特性。
通信机制 PHPPython间的通讯方式采用TCP SocketUnix Socket两种机制,兼顾通讯效率和分布式。
数据类型自动转换机制 PHP数据和Python数据可准确地自动匹配和转换,无须程序员编写解析代码。
易用:安装配置简单,PHP端和Python端编程符合各自的编程习惯。
轻量级:架构非常轻量级,除了最基本的PHPPython环境,不需要任何扩充的、第三方的组件、容器。
PHPPython的互通
PHPPython是两种不同的语言,通讯中采用两种socket机制。
一、TCP Socket
传统的TCP/IP通讯。
二、UNIX Domain Socket
java调用python模型
Unix/Linux本地socket,相对于TCP Socket,有以下特点:
1 只能在同一台主机中通讯(IPC),不能跨网络
2 传输速度,大于TCP Socket
3 服务端只向本机提供服务(没有对外侦听端口),相对安全,易于管理。
数据类型转换
PHPPython各有其语言内部定义的数据类型,当PHP数据传送到Python,或Python数据传送到PHP时,传统上需要转码处理,而使用本技术程序员无需进行任何的此类工作。
详细内容请浏览wiki文档:le/p/ppython/w/list
提高Python的多线程效率
Python因其语言GIL特性,多线程效率不高。在PHP+Python的混搭机制中,Python端可以多进程方式部署,从而提高Python的整体工作效率。
示例
示例程序表现了一个简单的PHP页面调用Python的加法函数程序片段。
php端程序
<?php
  require_once("php_python.php"); //框架提供的程序脚本

  $p1 = 2;   
  $p2 = 3;  //"ppython"是框架"php_python.php"提供的函数,用来调用Python端服务  //调用PythontestModule模块的add函数,并传递2个参数。
  $ret = ppython("testModule::add", $p1, $p2);

  echo "返回信息:".$ret;    //打印 5?>
Python端程序,文件名testModule.py
# -*- coding: UTF-8 -*-def add(a, b):  return a + b
写一段测试的python 脚本  文件名:php_get_python.py
使用php 调用python模块, php_get_python.php
本文中的python模块比较简单,大家可以发散思维,python可以用来 做蜘蛛爬虫,计算...等操作。
      2. 好好理解和掌握系统变量,你会有意想不到的收获。
        如果把  E:\wamp\www\python_module\ 也加入系统变量
          步骤5 可以简化为
  system('php_get_python.py');
      3. 此调用模式对EXE文件,java 模块亦同等有效,只需要将第5 system()函数执行的内容做更改。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。