首頁  >  文章  >  後端開發  >  php,如何引用第三方namespace?

php,如何引用第三方namespace?

WBOY
WBOY原創
2016-06-06 20:15:031113瀏覽

我现在得到了第三方的几个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。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn