# tp中app()函數自定義的沒提示問題
1.雖然 app()->sms->send 這樣感覺還不夠,問題是 app()->cahce都有代碼提示,app()->sms 就沒提示,也很不方便,為什么 app()->cache有提示呢?


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.寫代碼就有提示啦


- 1、面向對象編程
- 寫的第一個接口
- 類、對象
- 面象對象之前-面向過程編程
- public、protected、private
- 魔法函數
- 接口
- 依賴注入
- 2、簡單工廠
- 現實問題舉例
- 現實問題解決辦法
- 程序問題舉例
- 程序解決辦法
- 在THINKPHP6中的應用
- TP6中,把自己寫的類放到工廠中去
- tp中app()函數自定義的沒提示問題
- 3、外觀模式
- 外觀模式-現實問題舉例
- 外觀模式-現實問題解決辦法
- 程序問題舉例2
- 在THINKPHP6中的影子
- 外觀模式--個人感想
- 4、適配器模式
- 現實問題舉例3
- 實現場景
- 程序舉例
- 5、單例模式
- 現實問題舉例4
- 現實問題解決辦法4
- 程序舉例4
- 改進1
- THINKPHP6中的單例
- TP容器實現的“單例”
- 6、生成器模式
- 舉例5
- php代碼舉例
- 代碼分析
- php代碼調整
- 再次改進,就是生成器模式了
- 對生成器模式的個人感想
- 7、原型模式
- 模式目地
- 實現舉例
- 代碼舉例
- 淺克與深克
- 8、中介者模式
- 中介者-定義
- 中介者-結構
- 中介者-php代碼舉例
- 中介者-實際項目的一個例子
- 中介者-實際項目PHP
- 9、代理模式
- 代理模式-現實問題舉例
- 代理模式-php代碼
- 10、觀察者模式
- 小時候煮飯的例子
- 觀察者-編程中的問題
- 觀察者-php代碼舉例
- 觀察者-thinkphp6中的應用
- 11、命令模式
- 命令模式-定義
- 命令模式-php代碼舉例
- 命令模式-個人感覺
- 12、迭代器模式
- 迭代器-定義
- 虛構的分享微信美女故事
- 迭代器-php代碼舉例 - 不想完全公布的問題
- 迭代器-php代碼舉例 - 解決辦法
- 13、組合模式
- 組合模式定義
- 組合模式-實際項目舉例
- 組合模式-問題
- 組合模式-如果圖片也有這個接口呢
- 真正的組合模式-例子
- 14、模板方法模式
- 模板方法-定義
- 模板方法-現實參考
- 模板方法-項目問題舉例
- 模板方法-未用模式的代碼
- 模板方法-使用模式的代碼
- 15、策略模式
- 策略模式-定義
- 策略-虛構現實案例
- 策略-虛構現實案例PHP代碼
- 策略-實際項目舉例
- 策略-實際項目舉例PHP代碼-未使用模式
- 策略-實際項目舉例PHP代碼-使用模式
- 16、狀態模式
- 狀態模式定義
- 狀態模式-實現案例
- 狀態模式-未使用模式
- 狀態模式-使用模式
- 17、備忘錄模式
- 備忘錄模式-定義
- 備忘錄-形式圖形
- 備忘錄-比較真統的php代碼
- 備忘錄-實際項目想到的例子
- 備忘錄-實際例子代碼
- 18、享元模式
- 享元模式-定義
- 享元模式-看電影故事
- 享元模式-圖形
- 享元模式-看電影PHP代碼
- 享元模式-THINKPHP6中的應用
- 19、解釋器模式
- 解釋器-定義
- abc加減解釋器例子
- 解釋器-圖解算法
- 解釋器-三種類型對應的php代碼
- 解釋器-完整的代碼
- 解釋器-感覺
- 20、裝飾模式
- 裝飾模式-定義
- 裝飾模式-快餐舉例
- 裝飾模式-php代碼
- 裝飾者模式-實際案例
- 21、責任鏈模式
- 責任鏈-定義
- 責任鏈-面試的例子
- 責任鏈-面試php代碼
- 責任鏈-THINKPHP6中用應用
- 22、橋接模式
- 橋接模式-定義
- 橋接模式-案例舉例
- 橋接模式-問題是怎么來的呢
- 橋接模式-使用模式后的代碼
- 23、訪問者模式
- 訪問者-定義
- 訪問者-結構關系
- 訪問者-php代碼舉例