php语+言教程,写给thinkphp开发者的laravel系列教程(九)打印数据-Fun言
php這種腳本語言調試起來是很方便的;
大多時候看報錯打印一下數據就知道問題所在了;
php 內置了常用打印函數 print 和 var_dump ;
但是打印出來的樣式實在讓人目瞪狗呆;
thinkphp 框架自帶一個 dump 函數;
看過上篇文章的童鞋會懂我的;
除非是需要查看數據的類型等更詳細數據;
否則平常開發我是不用框架的打印函數;
laravel 也是有一個dump 函數的;
這個打印出來就漂亮多了;
跟我那個 p 函數一樣的簡潔而且還帶顏色;
從數據庫取出來的數據是一個 Collection 對象;
如果拿它打印 Collection 那就痛苦了;
默認都是折起來;
需要我們點下箭頭按鈕才會展開;
這里有個小技巧;
ctrl/command+鼠標左鍵點擊下箭頭可以展開全部;
其實大多時候我們只想看 attributes 里面的數據;
作為一個有簡潔癖好的懶人;
讓我每次打印數據都得點擊展開;
而且還顯示一大堆我并不在意的數據;
我是相當不能忍的;
給的再多;不如懂我;
于是在 laravel 中我的 p 函數就升級了;
if (!function_exists('p')) {
// 傳遞數據以易于閱讀的樣式格式化后輸出
function p($data, $toArray = true)
{
// 定義樣式
$str = '
';
// 如果是 boolean 或者 null 直接顯示文字;否則 print
if (is_bool($data)) {
$show_data = $data ? 'true' : 'false';
} elseif (is_null($data)) {
// 如果是null 直接顯示null
$show_data = 'null';
} elseif (is_object($data) && in_array(get_parent_class($data), ['Illuminate\Support\Collection', 'App\Models\Base']) && $toArray) {
// 把一些集合轉成數組形式來查看
$data_array = $data->toArray();
$show_data = '這是被轉成數組的Collection:
' . print_r($data_array, true);
} elseif (is_object($data) && in_array(get_class($data), ['Maatwebsite\Excel\Readers\LaravelExcelReader']) && $toArray) {
// 把一些集合轉成數組形式來查看
$data_array = $data->toArray();
$show_data = '這是被轉成數組的Collection:
' . print_r($data_array, true);
} elseif (is_object($data) && in_array(get_class($data), ['Illuminate\Database\Eloquent\Builder'])) {
// 直接調用dd 查看
dd($data);
} else {
$show_data = print_r($data, true);
}
$str .= $show_data;
$str .= '
';echo $str;
}
}
打印上面的數據后的輸出是這個樣子的;
怎么樣;
這看起來直觀多了吧;
laravel 的 dump 函數是不會終止代碼的;
但有些時候;
我們希望打印數據并停止往后執行;
thinkphp 中沒有內置這樣的函數;
laravel 比較體貼給了個 dd 函數;
那么在我這相應的寫了一個 pd 函數;
if (!function_exists('pd')) {
// 傳遞數據以易于閱讀的樣式格式化后輸出并終止
function pd($data, $toArray = true)
{
p($data, $toArray);
die;
}
}
這兩個函數有了那應該放哪呢?
如果不知道;
出門左轉找上一篇文章;
答案就在里面;
寫給 thinkphp 開發者的 laravel 系列教程 (八) 自定義函數和類
————用來補充內容的分割線—————
后來;我的 p 函數又升級了;
現在是一個擴展包;
開源項目系列之laravel-print以簡潔的方式打印數據
總結
以上是生活随笔為你收集整理的php语+言教程,写给thinkphp开发者的laravel系列教程(九)打印数据-Fun言的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 满天星的花语和祝福语
- 下一篇: python正确方法,方法 - 廖雪峰的