我們在用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...