PHP的模块化插件

开场白:最近在做一个PHP搜索结果的页面,需要用php的socket去提交参数,然后由java server socket返回一段搜索结果,当然这是一个xml的结果,然后由php去解释并显示出来页面.然而在这个调用php socket的过程中发现每一次调用php的socket时就会报错 Call to undefined function socket_create 意思就是说php对于socket并不支持,意思是说,配置对socket的支持...

开始:
其实解决办法很简单,最直接就是直接重装php,在重编译的时候加上一个 --enable-sockets的参数就可以了.其实php的思想都是一个模块化,所以所以以插件的形式为之增加而不需要重新安装了.下载了 php-5.2.12.tar.bz2 解压的时候我会发现根目录下有一个叫ext的文件夹,意思是"扩展",里面就能看到很多支持的插件了从[图1]可以看到..
[img]http://dl.iteye.com/upload/picture/pic/51818/af117fc5-e244-31fc-8101-2c83d66793bc.jpg[/img]
同时在phpinfo()函数可以知道现在的php并没有对socket的支持 [图2]

[img]http://dl.iteye.com/upload/picture/pic/51816/434a18a2-710d-3a4f-a527-5f439b035679.jpg[/img]

然后选择到ext目录下的sockets扩展下[图三]
[img]http://kernaling-wong.iteye.com/upload/picture/pic/51820/38861528-1e28-3335-9c10-4b69f16a40b5.jpg[/img]
我当时没有把php的bin目录加到系统路径那里,所以我需要指定绝对路径,运行命令
[b]$php_home/bin/phpize [/b]

[img]http://kernaling-wong.iteye.com/upload/picture/pic/51848/3e52455e-1267-33ac-8817-ba72c0fdd503.jpg[/img]

意思是通过现有的php配置情况(php-config)来编译现在的sockets模块.然后就会产生configue文件.当然现在就可以在编译这一个sockets模块时加上php对sockets的支持了 ./configure --enable-sockets --with-php-config=$php_home/bin/php-config

[img]http://kernaling-wong.iteye.com/upload/picture/pic/51824/c6d3b60b-7995-309c-a9f9-3752873b94b7.jpg[/img]

configue完后,则会产生 Makefile文件了,这样直接 make&& make install就可以了
完成后这里会说明刚才生成的sockets模块在哪儿

[img]http://kernaling-wong.iteye.com/upload/picture/pic/51826/61a2af83-b28a-3931-9e2a-29f2a3e07e0d.jpg[/img]

[img]http://kernaling-wong.iteye.com/upload/picture/pic/51828/f301ad20-6fbf-3ac7-92cd-40bd69f50e63.jpg[/img]

模块生成后,需要在php.ini文件(我在编译php的时候把php.ini文件放到 $php_home 目录下)里的 extension_dir 指定扩展的路径

[img]http://kernaling-wong.iteye.com/upload/picture/pic/51830/ae5dcf47-031f-309c-b5c6-f8edd7f4ee86.jpg[/img]

我为了能区别其他的php插件,然后我就直接就象上图那样把每一个php的扩展模块都分开了.
然后在 php.ini文件中的 extension的sockets的模块路径给指定就可以了

[img]http://kernaling-wong.iteye.com/upload/picture/pic/51836/df93cb65-3a8b-385b-888f-8bcc4db4d0c4.jpg[/img]

完成后,重启apache让php重新加载,然后就能看到了php对sockets的支持了
[img]http://kernaling-wong.iteye.com/upload/picture/pic/51838/bff231a5-4cf0-3c65-a6d3-5c716112b4ee.jpg[/img]

同时也可以把其他的扩展插件也一样,比如 mbstring,mysql也一样,也是作为一个插件形式处理就可以了..

[img]http://kernaling-wong.iteye.com/upload/picture/pic/51840/d542f59c-ab21-3e42-9190-af9627d2b7bf.jpg[/img]
重启apache后,这样mbstring的模块就可以支持了
[img]http://dl.iteye.com/upload/picture/pic/51842/943ae65c-528f-3f60-a2c5-8c085603939c.jpg[/img]

后记:此文为菜鸟级文章,应该比较通俗明白,所以大家见笑了 ...如发现错误或者有建议请联系我 kernaling.wong@gmail.com 欢迎转载,请注明
http://kernaling-wong.iteye.com/blog/562644
MyQEE PHP Framework 是基于PHP5开发的完美支持HMVC模式的PHP框架,支持多项目开发。MyQEE借鉴了国外优秀框架的设计思路,优雅、实用的代码是我们追求的目标。 MyQEE具有以下几大特点: 优越的扩展性,支持多项目管理及HMVC模式 MyQEE独有的文件加载逻辑可以实现多一套程序开发多个项目的需求,并且可以为每一个项目搭配独立(或共享)的类库文件,甚至只要您愿意,系统可以加载第三方的类库。 特别开发的ORM为团队开发带来全新的体验 MyQEE ORM是专门为团队开发设计的一个OOP组件,通过对数据表的配置,ORM可非常方便快捷的供团队成员使用。对于垂直拆表的数据表,ORM可帮您方便而简单的连接起来,并且不存在性能上的问题。ORM更适合具有key、value模式的表,并且使用和更新起来都非常的简单易用。 高安全性 MyQEE内置XSS过滤机制,并且提供Database QueryBuilder组件可有效防止SQL注入。 提供技术人员开发调试工具 借助于多年团队开发经验,我们提供了比较实用的开发工具,包括本地调试环境的开启,远程调试环境,SQL分析工具,无缓存模式,以及非常友好的错误跟踪系统。 多驱动支持 包括Database,HttpGet,Cache,Session等多种基础类都支持多驱动扩展,方便您选择适合自己系统环境的配置。 真正的自动加载和统一的命名空间 借助于PHP5的autoload功能,系统提供了统一的自动加载模式和统一的命名空间。 内置DOC输出模块 内置的DOC输出模块可以实时为您的项目输出API接口文档,对于团队开发的项目具有较大的实用性。 MyQEE开源PHP多项目开发框架 v2.0正式版更新**志: 修复2.0中发现的已知bug,比如: HttpClient中错别字导致执行失败 文件缓存保存数据错误,文件处理类完善 完善了MySQL类库对编码的转换处理 完善了MongoDB的查询功能,完善了debug的显示 优化了Bootstrap中对debug的处理 优化了内部调用
关于MyQEE MyQEE是一个开源、快速、优雅的轻量级PHP框架,支持HMVC模式,建立在PHP5.2基础之上,支持多项目管理开发,数据库内置自动主从分离功能,MySQL支持事务操作功能并且支持自动嵌套功能,多驱动设计灵活适应各种环境。点击访问 [MyQEE入门指引](./manual/guide/zh-cn/starting.md)。   拒绝粗糙不堪、复杂的代码,选择MyQEE,选择为WEB艺术家创造的PHP框架吧。   MyQEE PHP框架的特色 * MyQEE是一套轻量级的框架,但不是简陋的框架,系统具备完善的底层类库和强大的扩展功能设计; * 特有的 [HMVC](./manual/guide/zh-cn/hmvc.md) (分层MVC设计)和多项目支持,开发更灵活; * 支持时下最流行的PHP包管理器 [Composer](http://getcomposer.org/) ,并且可以使用 Composer 安装 MyQEE 提供的官方类库; * 代码一致性设计:例如 `MySQL` 和 `MongoDB` 的查询语句完全不同,但是在 MyQEE 里可以做到实现90%的一致性,你的代码既可以使用在 `MySQL` 的环境里也可以用在 `MongoDB` 上; * 包括`Database`, `Cache`, `HttpClient`, `Session`, `Storage`, `Upload` 等支持多驱动,可以适应不同环境的需求,其中数据库支持 `MySQL`, `MySQLI`, `Mongo`, `SQLite`, `Postgre`,缓存支持 `Memcache`, `File`, `Redis`, `Apc`, `Database`, `SQLite`, `WinCache` 等; * 数据库提供强大的 `QueryBuilder` 功能,可实现同相同程序兼容多种数据库,解决SQL注入隐患和迁移环境后顾之忧; * 云引擎支持:支持SAE和BAE等云引擎,MyQEE网站就运行在SAE上; * 高性能和优雅的代码:经测试 MyQEE 的初始化速度比 Codeigniter 等优秀的轻量级框架还快; * 完备和详细的文档和API支持,更可简单的生成自己的团队文档; * 为团队开发而生,特别提供团队类库功能,多项目设置可以帮助团队成员之间规划独立和共用的代码; * ORM支持,提供了特有的高性能ORM; * 支持 `RESTFul`,支持 [PHPRPC](http://www.phprpc.org/); * 独创5模式运行设计:普通控制器、后台、命令行、系统调用、RESTFul的控制器相互分离,系统更加安全可靠;   安全性 * 系统内置XSS安全过滤; * 防SQL注入,强大的QueryBuilder; * 强制数据类型转换; * 普通控制器、后台、命令行、系统调用、RESTFul 5种运行模式相互隔离,安全更有保障;   MyQEE v3.0 RC2 更新日志: 本次更新在3.0RC1的基础上做了一些完善,修复了一些Bug: 完善文档生成脚本 完善模块化的拆分 数据库增加对 group_concat 的支持,MongoDB数据库驱动支持在group查询中使用distinct查询,修复MongoDB驱动力中查询slave在新的版本里可能导致连接失败的问题 增加 BigInt 类库 日期类库完善 HttpClient 增加upload方法,可实现上传文件功能 完善邮件类库,修复 Email 中上传附件bug,支持收件人姓名 邮件的格式,完善密件抄送的功能 Session 类库优化 Swift Storage 驱动完善,token验证支持v1和v2版本,优化参数传送方式,支持url方式的配置
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值