php,如何引用第三方namespace?

DunkOnly
  • 612

我现在得到了第三方的几个php文件,开头都有namespace的,
我怎么能用?

补充,我要用的是
https://github.com/jeremeamia/super_closure

我看说明
use SuperClosure\Serializer;
但是提示
Fatal error: Class 'SuperClosure\Serializer' not found

我如果把自己的php文件也都加上相同的namespace,则就报错找不到系统自身的php文件

回复
阅读 3.7k
4 个回答
✓ 已被采纳

现在php引入第三方包,普遍都是用的composer,你可以看下composer相关使用方法和概念

composer require jeremeamia/superclosure

如果要单独使用某个文件的话,可以直接include。但是一般一个包会有很多个类文件,你不会打算全部include吧 - -#

psr-4是一种加载标准,将namespace和某个文件路径对应起来,实现按需时的延迟加载;使用composer安装,只需要包含一个composer的引导文件就可以实现psr-4

当然composer还有很多功能....

如果你的程序没有使用namespace,而你又要使用带有namespace的部分其他程序,首先要确保这些程序文件被include到你的程序中,之后你可以通过直接使用对应类的全名或者使用use引入来访问这些类。

那把namespace SuperClosure\Serializer;的php文件require_once()进来应该就不会报错

namespace 是用来注册一个文件的路径,所以如果需要使用第三方类包的时候,如果你的代码当中有支持namespace的autoload方法的话,就需要对相关的autoload添加namespace,不同的框架会有不同的autoload方法,如果没有的话,则需要注册自己的autoload方法。如果不打算使用autoload方法的话就需要对你所使用的每个文件进行include。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏