相信每個人都有這樣的問題,每開一個新專案,都要寫一個 helper 檔案,複製貼上是挺方便。
但是後續維護新增一個方法,就需要複製到每個 helper,這樣真的好嗎?
9102 年了,在現在這種專案趨於服務化的形勢下,業務拆分的模組只多不少,還要這麼 low 的複製嗎?
9102 年了,我們還不好好使用 composer 嗎?
9102 年了,你該有一個屬於自己的工具包了。
在這裡分享一下我自己的工具包:yiranzai/php-tools,很多東西都參考了 laravel
ps: 我不是說一定要讓你用我的包,畢竟第一我的包內容有限,第二這種東西更應該釋出在內部的倉庫上,composer.json 是可以指定包的來源的
僅供參考,歡迎批評和pr
這一段理解為王婆賣瓜
檢視完整直接看下邊 使用者手冊
\Yiranzai\Tools\Arr::sortBy()
使用給定的回撥對陣列進行排序並保留原始鍵,支援多列排序,特別實用。
\Yiranzai\Tools\Date::toCarbon($dateTime, $default)
生成 Carbon 物件,不合法資料會返回預設值
\Yiranzai\Tools\Date::timeDiffFormat($leftTime, $rightTime, $absolute)
人性化顯示兩個 DateTime 物件的差,9102 年了,我的同事還在
strtotime()
相減然後慢慢取餘呢\Yiranzai\Tools\Math::formatDiv()
四捨五入除法,基於 bcmath,不用擔心除數為 0 的問題
\Yiranzai\Tools\Tools::iteratorGet()
獲取一個物件或者一個陣列的屬性,如果屬性或者 key 不存在,返回預設值,如果預設值是一個異常,丟擲異常。(對於手動校驗的引數相當實用)
\Yiranzai\Snowflake\SnowFlake::next()
雪花演算法生成 64 位 id,這個自行搜尋雪花演算法
\Yiranzai\Snowflake\SnowFlake::analysis()
// 解析 64 位 id解析雪花演算法生成的 64 位 id
Arr::class
\Yiranzai\Tools\Arr::sortBy()
// 使用給定的回撥對陣列進行排序並保留原始鍵,支援多列排序\Yiranzai\Tools\Arr::arrSortByField()
// 二維陣列排序\Yiranzai\Tools\Arr::arrGroup()
// 陣列按欄位分組\Yiranzai\Tools\Arr::heapSort()
// 堆排序\Yiranzai\Tools\Arr::mergeSort()
// 歸併排序\Yiranzai\Tools\Arr::quickSort()
// 快速排序
Date::class
\Yiranzai\Tools\Date::toCarbon()
// 生成 Carbon 物件\Yiranzai\Tools\Date::timeDiffFormat()
// 輸出兩個 DateTime 物件的差距
Math::class
\Yiranzai\Tools\Math::formatDiv()
// 四捨五入 格式化除法\Yiranzai\Tools\Math::formatMod()
// 四捨五入 格式化取餘(模運算)\Yiranzai\Tools\Math::formatMul()
// 四捨五入 格式化乘法\Yiranzai\Tools\Math::formatSub()
// 四捨五入 格式化減法\Yiranzai\Tools\Math::formatAdd()
// 四捨五入 格式化加法\Yiranzai\Tools\Math::gcd()
// 求兩個數的最大公約數\Yiranzai\Tools\Math::gcdArray()
// 求一個陣列的最大公約數
Filesystem::class
\Yiranzai\Tools\Filesystem::hash()
// 獲取給定路徑上的檔案的 MD5 雜湊值。\Yiranzai\Tools\Filesystem::prepend()
// 將內容儲存到到檔案開頭。\Yiranzai\Tools\Filesystem::exists()
// 確定檔案或目錄是否存在。\Yiranzai\Tools\Filesystem::put()
// 將內容儲存在檔案中。\Yiranzai\Tools\Filesystem::makeDirectory()
// 建立一個目錄。\Yiranzai\Tools\Filesystem::get()
// 獲取檔案的內容。\Yiranzai\Tools\Filesystem::isFile()
// 確定給定路徑是否為檔案。\Yiranzai\Tools\Filesystem::sharedGet()
// 獲取具有共享訪問許可權的檔案的內容。\Yiranzai\Tools\Filesystem::size()
// 獲取給定檔案的檔案大小。\Yiranzai\Tools\Filesystem::append()
// 將內容儲存到到檔案結尾(追加)。\Yiranzai\Tools\Filesystem::chmodFile()
// 獲取或設定檔案或目錄的 UNIX 模式。\Yiranzai\Tools\Filesystem::move()
// 將檔案移動到新位置。\Yiranzai\Tools\Filesystem::name()
// 從檔案路徑中提取檔名。\Yiranzai\Tools\Filesystem::basename()
// 從檔案路徑中提取尾隨名稱元件。\Yiranzai\Tools\Filesystem::dirname()
// 從檔案路徑中提取父目錄。\Yiranzai\Tools\Filesystem::extension()
// 從檔案路徑中提取副檔名。\Yiranzai\Tools\Filesystem::type()
// 獲取給定檔案的檔案型別。\Yiranzai\Tools\Filesystem::mimeType()
// 獲取給定檔案的 mime 型別。\Yiranzai\Tools\Filesystem::lastModified()
// 獲取檔案的上次修改時間。\Yiranzai\Tools\Filesystem::isReadable()
// 確定給定路徑是否可讀。\Yiranzai\Tools\Filesystem::isWritable()
// 確定給定路徑是否可寫。\Yiranzai\Tools\Filesystem::moveDirectory()
// 移動目錄。\Yiranzai\Tools\Filesystem::isDirectory()
// 確定給定路徑是否是目錄。\Yiranzai\Tools\Filesystem::deleteDirectory()
// 遞迴刪除目錄。\Yiranzai\Tools\Filesystem::delete()
// 刪除給定路徑的檔案。\Yiranzai\Tools\Filesystem::copyDirectory()
// 將目錄從一個位置複製到另一個位置。\Yiranzai\Tools\Filesystem::copyFile()
// 將檔案複製到新位置。\Yiranzai\Tools\Filesystem::cleanDirectory()
// 清空所有檔案和資料夾的指定目錄。\Yiranzai\Tools\Filesystem::windowsOs()
// 確定當前環境是否基於 Windows。
Tools::class
\Yiranzai\Tools\Tools::getNiceFileSize()
// 人性化轉化記憶體資訊\Yiranzai\Tools\Tools::callFunc()
// 呼叫物件的方法\Yiranzai\Tools\Tools::iteratorGet()
// 獲取一個物件或者一個陣列的屬性\Yiranzai\Tools\Tools::arrGet()
// 獲取陣列中的某個元素\Yiranzai\Tools\Tools::objectGet()
// 獲取物件中的某個元素
SnowFlake::class
\Yiranzai\Snowflake\SnowFlake::next()
// 生成 64 位 id\Yiranzai\Snowflake\SnowFlake::analysis()
// 解析 64 位 id
更多文章 歡迎訪問一冉再的部落格