没有使用php命名空间的项目是否可以调用使用了命名空间的插件呢?

发布于 2022-09-06 12:14:54 字数 128 浏览 26 评论 0

如题:没有使用php命名空间的项目是否可以调用使用了命名空间的插件呢?

比如在yaf框架下,没有开启命名空间的情况下,想把workerman当一个模块引入到library目录下,然后使用,不知道是否可行,以及具体如何使用呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

挽心 2022-09-13 12:14:54

建议使用composer安装组件,自动完成自动加载。
深入理解composer的autoload自动加载原理

混吃等死 2022-09-13 12:14:54

没有开启命名空间之后,你如果想调用一个类的话,还是需要引入相关类文件。这种情况话最好祈祷自己跟引入类没有冲突。。。。

长亭外,古道边 2022-09-13 12:14:54

这里只针对问题做一个回答。因为没用过yaf框架所以就不说了。

实际上,这个问题要分两个方面的回答。

第一,php版本>=5.3的项目没用命名空间,而引用用了命名空间的类。意思是你得php版本支持命名空间,但是你没有用。这个时候问题不大,你大可在你的项目里采用命名空间的方式调用你要引入的类,不过可能这样不支持自动加载,所以在使用前,先将代码include进来。

第二,php版本<5.3项目里没用命名空间(php不支持).这种情况下就苦逼了。解决办法有两种:1,升级PHP版本到5.3以上(解决兼容问题)。2,删除引用目标代码中使用到的命名空间部分,修改源码。

第二种情况建议 使用解决办法1。

另外,还有种情况也说了吧。就是在有命名空间的代码里引用没用用命名空间的代码。这个也很好解决,只要记住没用命名空间的代码都被放在了跟命名空间下就好了,实例化类的时候在前面加上一个就ok了。

最后,PHP的命名空间已经是大势所趋,建议还是赶快使用起来。如今框架的版本都已经全面使用了,其中的好处还是很多很多的

白衬杉格子梦 2022-09-13 12:14:54

可以。前提是PHP>=5.3,否则只能手动require
如果你依赖的包有命名空间,一般来说,包源码里面会有一个autoload.php,auto_load.php,ClassLoader.php这样的文件,如果有,直接require这个文件可以完成自动加载

囚你心 2022-09-13 12:14:54

可以使用,但是无法自动加载,要么实现自动加载函数,要么手动 require 进来,不过还是会有坑,最好是用 composer

御守 2022-09-13 12:14:54

可以使用的
1.php版本要大于等于5.3
2.安装composer
3.引入composer文件 require 'vendor/autoload.php';
4.composer的基本配置 已经定义命名空间

{
    "autoload": {
        "psr-4": {
        "命名空间的名字\\": "命名空间所对应的路径/"
        }
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文