Python做为PHP的扩展——ppython简介

许多人在纠结WEB快速开发到底是采用PHP,仍是采用Python,两者一样是脚本语言,但特色鲜明:
PHP: Web专用开发利器,有10多年的经验积累,但其余领域基本不涉及,扩展性不强,企业应用少。
Python: 面向对象、简单高效、可扩展性强,但Web开发积累少,成熟度低。
ppython开源项目既是结合使用PHP和Python两种语言,取其所长、补其所短,面向企业WEB领域的开发技术。此技术能够理解为PHP和Python相结合的技术,也可称为PHP和Python混合编程技术,或者PHP调用Python服务的技术,也有人习惯称之为前台PHP后台Python的技术框架。
本项目是LAJP项目的语言环境的拓展,变化是将LAJP中的Java语言变动为Python语言,所以LAJP的技术、文档对本项目有参考做用。LAJP的官方网页:http://code.google.com/p/lajp
特色php

优点互补: PHP和Python都是流行的脚本语言,PHP很是适合网页编程;而Python能够看成轻量级JAVA,两者结合可发挥各自优点。
高效稳定:Apache+PHP组合可带来优异的WEB服务稳定性,而Python的语言能力可补充如链接池、事物管理、分布式、对象模型等高端特性。
通讯机制 PHP和Python间的通信方式采用TCP Socket和Unix Socket两种机制,兼顾通信效率和分布式。
数据类型自动转换机制 PHP数据和Python数据可准确地自动匹配和转换,无须程序员编写解析代码。
易用:安装配置简单,PHP端和Python端编程符合各自的编程习惯。
轻量级:架构很是轻量级,除了最基本的PHP和Python环境,不须要任何扩充的、第三方的组件、容器。
PHP和Python的互通python

 

PHP和Python是两种不一样的语言,通信中采用两种socket机制。程序员

1、TCP Socket
传统的TCP/IP通信。编程

2、UNIX Domain Socket
Unix/Linux本地socket,相对于TCP Socket,有如下特色:安全

只能在同一台主机中通信(IPC),不能跨网络
传输速度,大于TCP Socket
服务端只向本机提供服务(没有对外侦听端口),相对安全,易于管理。
数据类型转换网络

PHP和Python各有其语言内部定义的数据类型,当PHP数据传送到Python,或Python数据传送到PHP时,传统上须要转码处理,而使用本技术程序员无需进行任何的此类工做。多线程

 

详细内容请浏览wiki文档:http://code.google.com/p/ppython架构

提升Python的多线程效率框架

Python因其语言GIL特性,多线程效率不高。在PHP+Python的混搭机制中,Python端能够多进程方式部署,从而提升Python的总体工做效率。socket

示例

示例程序表现了一个简单的PHP页面调用Python的加法函数程序片断。

<?php
  require_once("php_python.php"); //框架提供的程序脚本

  $p1 = 2;     
  $p2 = 3; 

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

  echo "返回信息:".$ret;    //打印 5
?>

Python端程序,文件名testModule.py

# -*- coding: UTF-8 -*-

def add(a, b):
  return a + b
相关文章
相关标签/搜索