tp5使用外部類的三種方法

在tp5中使用外部類的時候有三種方法php

第一種就是經過composer下載,經過這種方式下載的外部類可以支持自動加載,咱們只要在使用的時候use一下命名空間就可使用了微信

好比:咱們的tp5第四季項目要使用到郵件發送類PHPMailer,這個類咱們能夠經過composer下載到當前項目,默認會下載到vendor目錄app

在使用的時候只需在程序文件的開頭:use PHPMailer\PHPMailer\PHPMailer;便可使用composer

第二種方法就是一些咱們本身寫的類或者是網上搜的類庫文件,從composer上面下載不到的,那麼咱們能夠放到extend文件夾中,由於extends中的文件在tp5的結構體系內部,因此要考慮命名空間的問題,這樣在調用的時候才能正常使用,好比咱們的tp5第四季開發的大型商城項目中,咱們將無限極分類文件放到了extend文件夾中,那麼就要爲這些文件加上命名空間。微信支付

如咱們的無限極分類類文件放到了extend文件夾下catetree自建的文件夾中,那麼該類文件的命名空間就要設置爲:namespace catetree;url

接着在控制器中使用該類文件的時候咱們也要use引入:use catetree\Catetree(類文件的名稱);spa

那麼第三種方法就是直接將外部類放到咱們項目的跟目錄下,好比tp5第四季咱們在集成支付寶支付和微信支付的時候,不想考慮太多命名空間的問題就在根路徑下建立了一個文件夾paycode

以後又在內部建立了兩個文件夾alipay和wxpay分別用來存放支付寶和微信的接口文件,可是雖然咱們經過這種簡單粗暴的方法引入了,可是在使用的時候對於一些新手可能就比較麻煩了,尤爲是對命名空間機制不是很熟悉的學員,一般會在控制器中使用的時候提示加載不到類,下面咱們以微信支付爲例解決一下:視頻

其實就是兩個小問題,第一將文件按照正確的路徑引入到項目教程

爲了解決這個問題,咱們先在index.php入口文件中定義了一個路徑常量

define(‘PAY_PLUS’, DIR . ‘/application/../’);

接着在須要微信支付的控制器的方法內部引入微信支付接口文件:

//微信支付
    if($orderInfo['payment']==2 && $orderInfo['pay_status']==0){
        $payPlus = PAY_PLUS.'./pay/wxpay/';
        include($payPlus.'index2.php');
        $obj = new \WeiXinPay2();
        $qrurl = $obj->getQrUrl('1118');

         //2.生成二維碼
         \QRcode::png($qrurl);
    }

如上代碼,咱們又對入口文件中的路徑進行了二次組裝,這個是由於咱們在微信的其餘沒有被直接引入到項目中的文件中也要使用該路徑,因此定義成爲了一個變量:$payPlus

還有第二點要注意的:咱們在控制器的方法中若是須要實例化外部引入的類,必定要在類名前面加:\表示跟命名空間便可,若是你是新手沒看太懂,那就看看咱們的視頻教程吧

相關文章
相關標籤/搜索