核心之外扩展和使用第三方类库 若该类库不是通过Composer
安装
放应用根目录下extend
目录 官方建议的第三方扩展类库目录
如
<?php //extend/share/Jssdk.php //thinkphp6 测试通过 namespace share; class Jssdk { private $appId; private $appSecret; public function __construct($appId="100", $appSecret="200") { $this->appId = $appId; $this->appSecret = $appSecret; } public function index(){ echo "this is a test"; } } <?php //app/index/controller/Extend.php namespace app\index\controller; class Extend extends Base { public function index() { $b = new \share\Jssdk(); echo $b->index(); // 输出 this is a test } }
类的命名规范遵循PSR-2
及PSR-4
规范 扩展类库的命名空间 如 first.second.Foo
类定义
namespace first/second; class Foo { }
第三方类库不要和系统的命名空间产生冲突 如核心
think
app
及Composer
类库自身定义的命名空间
文件位置
extend/first/second/Foo.php
用first.second.Foo
类的时候 直接实例化即可使用 例如:
$foo = new first\second\Foo();
或先
use first\second\Foo;
然后
$foo = new Foo();
可入口文件修改extend
目录的名称
define('EXTEND_PATH', '../extension/');
扩展类库用命名空间定义
如类库没有使用命名空间 则不支持自动加载
必须使用Loader::import
方法先导入文件后才能使用
Loader::import('first.second.Foo'); $foo = new Foo();
尊贵的董事大人
英文标题不为空时 视为本栏投稿
需要关键字 描述 英文标题