Home  >  Article  >  Backend Development  >  php,如何引用第三方namespace?

php,如何引用第三方namespace?

WBOY
WBOYOriginal
2016-06-06 20:15:031114browse

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

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

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

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

回复内容:

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

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

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

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

现在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。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn