# tp中app()函数自定义的没提示问题 1.虽然 app()->sms->send 这样感觉还不够,问题是 app()->cahce都有代码提示,app()->sms 就没提示,也很不方便,为什么 app()->cache有提示呢? ![](https://img.kancloud.cn/34/cb/34cbd7ff7246ff5461d3129058339788_1000x331.png) ![](https://img.kancloud.cn/2a/db/2adbc2fdc025c0be280d9c370a695670_1044x639.png) 2.如果自己写的类,也要有提示。去修改APP这个类也不太好吧。自己模拟一个吧。 3. app\\common.php, 做一个app2 ``` use think\Container; if (!function_exists('app2')) { /** * @return \test\App2 --------这里注明了,返回的是 App2这个类 */ function app2(string $name = '', array $args = [], bool $newInstance = false) { return Container::getInstance()->make($name ?: \test\App2::class, $args, $newInstance); } } ``` 4.app2代码, 其中的代码,如果不明白,不用纠结,后面,我会出图解tp6内核, (关于test这个自定义命名空间,就是在 extend建个test目录,把类写里就可以了) ``` namespace test; /** * @property AliSms $sms */ class App2 extends \think\Container { public function __construct(string $rootPath = '') { //初始化4个目录 $appPath = app()->getAppPath(); //加provider 加入到容器绑定标识中 if (is_file($appPath . 'provider.php')) { $this->bind(include $appPath . 'provider.php'); } } } ``` 5.写代码就有提示啦 ![](https://img.kancloud.cn/96/67/96675cb92b3c62c95bc5363c09e6759a_860x474.png) ![](https://img.kancloud.cn/32/64/3264568c3974219ac912fb67bf6c9167_919x241.png)