如题:没有使用php命名空间的项目是否可以调用使用了命名空间的插件呢?
比如在yaf框架下,没有开启命名空间的情况下,想把workerman当一个模块引入到library目录下,然后使用,不知道是否可行,以及具体如何使用呢?
6 回答
![?](http://img1.sycdn.imooc.com/5458631e0001ffd402200220-100-100.jpg)
largeQ
TA贡献2039条经验 获得超7个赞
这里只针对问题做一个回答。因为没用过yaf框架所以就不说了。
实际上,这个问题要分两个方面的回答。
第一,php版本>=5.3的项目没用命名空间,而引用用了命名空间的类。意思是你得php版本支持命名空间,但是你没有用。这个时候问题不大,你大可在你的项目里采用命名空间的方式调用你要引入的类,不过可能这样不支持自动加载,所以在使用前,先将代码include进来。
第二,php版本<5.3项目里没用命名空间(php不支持).这种情况下就苦逼了。解决办法有两种:1,升级PHP版本到5.3以上(解决兼容问题)。2,删除引用目标代码中使用到的命名空间部分,修改源码。
第二种情况建议 使用解决办法1。
另外,还有种情况也说了吧。就是在有命名空间的代码里引用没用用命名空间的代码。这个也很好解决,只要记住没用命名空间的代码都被放在了跟命名空间下就好了,实例化类的时候在前面加上一个就ok了。
最后,PHP的命名空间已经是大势所趋,建议还是赶快使用起来。如今框架的版本都已经全面使用了,其中的好处还是很多很多的
![?](http://img1.sycdn.imooc.com/545862770001a22702200220-100-100.jpg)
叮当猫咪
TA贡献1776条经验 获得超12个赞
可以。前提是PHP>=5.3
,否则只能手动require
如果你依赖的包有命名空间,一般来说,包源码里面会有一个autoload.php
,auto_load.php
,ClassLoader.php
这样的文件,如果有,直接require这个文件可以完成自动加载
- 6 回答
- 0 关注
- 624 浏览
添加回答
举报
0/150
提交
取消