每個專案都寫 helper? 為什麼不自己搞一個呢?給你一個不一樣的 PHP-tools 分享

一冉再發表於2019-04-10

相信每個人都有這樣的問題,每開一個新專案,都要寫一個 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

相關文章