Thinkphp3 2 3自定義類的多種載入方式

2021-08-18 17:28:32 字數 3075 閱讀 8235

我們在用thinkphp開發的時候 ,免不了要寫自己的一些類用來做操作,這也是符合oop的思想的。那麼我們經常糾結於這個類檔案放哪比較合適。為什麼我new了之後報找不到類。等等一系列無語的問題。下面我給講講怎麼做才好。。我的建議是,你如果這個類是整個專案都要使用到 ,你就放vendor目錄下 如果是模組使用的話你就放模組的跟目錄作為乙個元件吧。下面我一一進行介紹。

假設我們現在有個php類,這個類的**是這樣

<?php 

/** * created by phpstorm.

* user: lenovo

* date: 2018/4/13

* time: 13:53

*/class mytool

}

他提供乙個輸出方法。然後我想全域性使用它。那我就把他放在vendor下。

像這樣

然後你控制器呼叫方式是

<?php 

namespace home\controller;

use think\controller;

class indexcontroller extends controller

}

列印效果

這裡我稍微說明一下 有些同學不理解  就是現在這個第三方的類是無命名空間的,那麼我們訪問的時候 為了讓php編譯的時候能識別她 我們就要給她分配乙個根命名空間,如果你不分配 ,他就預設是當前命名空間了。

第二種方式是,你指定乙個命名空間。比如像這樣

<?php 

/** * created by phpstorm.

* user: lenovo

* date: 2018/4/13

* time: 13:53

*/namespace entity;//指定命名空間

class mytool

}

然後你呼叫的方式是這樣

<?php 

namespace home\controller;

use think\controller;

use entity\mytool;//引入命名空間

class indexcontroller extends controller

}

頁面列印效果

第二種情況是,你這個類只是針對乙個模組使用

先看一種預設的方式

你需要把他放在你指定的模組裡面。我這裡是建立乙個entity目錄用來存放。

細心的童鞋會發現 這個檔案的字尾變成了class.php 不是之前的.php了。這個大家要注意,你如果還是.php會找不到這個檔案的,tp底層限制了。做了規範處理。所以我們按照他來。

因為預設情況下 thinkphp底層處理的機制是支援命名空間來組織類檔案的。

那麼我們就這樣去寫這個類。

<?php 

/** * created by phpstorm.

* user: lenovo

* date: 2018/4/13

* time: 13:53

*/namespace home\entity;//自定義命名空間 要求模組名\資料夾名字方式。

class mytool

}

然後呼叫的地方這樣

<?php 

namespace home\controller;

use think\controller;

use home\entity\mytool;

class indexcontroller extends controller

}

需要引入她的命名空間,就會自動識別了。

列印效果

還有一種比較高階的方式是thinkphp支援自定義命名空間法

你可以在你的模組裡面像這樣

然後你需要在你模組配置檔案裡面去註冊她

<?php 

return array(

//'配置項'=>'配置值'

'autoload_namespace'=>array(

),);

注意名字要相同。。

你的類檔案是這樣的需要

<?php 

/** * created by phpstorm.

* user: lenovo

* date: 2018/4/13

* time: 15:01

*/namespace mynamespace;

class mytool

}

然後你這樣呼叫

<?php 

namespace home\controller;

use think\controller;

use mynamespace\mytool;

class indexcontroller extends controller

}

列印結果

ok 可以的。這種方式就比較靈活了,至少比前面那個預設的靈活很多吧。

ThinkPHP3 2 3使用分頁

todo 基礎分頁的相同 封裝,使前台的 更少 param count 要分頁的總記錄數 param int pagesize 每頁查詢條數 return think page function getpage count,pagesize 10 控制器中使用的 如下 public function...

ThinkPHP3 2 3使用分頁

thinkphp3.2.3使用分頁 首先要搞清楚的就是thinkphp3.2.3的分頁類已經被移到了think page.class.php,這是跟以前的版本有些不一樣的,使用起來還是跟以前版本差不多,但是預設的效果不敢恭維,所以最好是自己加些樣式。todo 基礎分頁的相同 封裝,使前台的 更少 p...

ThinkPHP3 2 3目錄結構

在第一次訪問應用入口檔案的時候,會顯示如圖所示的預設的歡迎頁面,並自動生成了乙個預設的應用模組home。common 應用公共模組 common 應用公共函式目錄 conf 應用公共配置檔案目錄 home 預設生成的home模組 conf 模組配置檔案目錄 common 模組函式公共目錄 contr...