Sha*_*jan 8 php wordpress var-dump laravel
我使用laravel很长一段时间.目前我在wordpress上工作.我喜欢使用laravel的DD()功能.
但在wordpress中,我只能使用这些,
print_r(),
var_dump(),
var_export()....
Run Code Online (Sandbox Code Playgroud)
这些都只是扩展整个数组或对象.
但我需要laravel的扩展和关闭机制来处理数组和对象.
我使用以下作为一般dd需要,
if (!function_exists('dd')) {
function dd()
{
echo '<pre>';
array_map(function($x) {var_dump($x);}, func_get_args());
die;
}
}
Run Code Online (Sandbox Code Playgroud)
它运作良好,但我需要有风格和有组织的列表形式.
可能吗 ?
Kas*_*ars 13
Laravel dd使用symfony的VarDump组件.然后你将有一个全局可用的dump函数来格式化输出.唯一的区别是它在转储后不会"死",你必须手动完成 - 但在大多数情况下甚至不是你想要的东西.
composer global require symfony/var-dumper(假设你的wordpress项目中有作曲家)auto_prepend_file = ${HOME}/.composer/vendor/autoload.php到您的php.ini文件;composer global update symfony/var-dumper以获得最新的错误修复.这是VarDumper组件的文档.https://symfony.com/doc/current/components/var_dumper.html
所以你的dd功能可能如下所示:
if (!function_exists('dd')) {
function dd()
{
array_map(function($x) {
dump($x);
}, func_get_args());
die;
}
}
Run Code Online (Sandbox Code Playgroud)
Ngo*_*Nam 11
我d在调试功能包中更新了更多功能和最新的功能代码.
(以下答案大约是1年前.)
======================================
以下是我自己的代码.它可以在普通的PHP(没有框架)中工作.
function d($data){
if(is_null($data)){
$str = "<i>NULL</i>";
}elseif($data == ""){
$str = "<i>Empty</i>";
}elseif(is_array($data)){
if(count($data) == 0){
$str = "<i>Empty array.</i>";
}else{
$str = "<table style=\"border-bottom:0px solid #000;\" cellpadding=\"0\" cellspacing=\"0\">";
foreach ($data as $key => $value) {
$str .= "<tr><td style=\"background-color:#008B8B; color:#FFF;border:1px solid #000;\">" . $key . "</td><td style=\"border:1px solid #000;\">" . d($value) . "</td></tr>";
}
$str .= "</table>";
}
}elseif(is_resource($data)){
while($arr = mysql_fetch_array($data)){
$data_array[] = $arr;
}
$str = d($data_array);
}elseif(is_object($data)){
$str = d(get_object_vars($data));
}elseif(is_bool($data)){
$str = "<i>" . ($data ? "True" : "False") . "</i>";
}else{
$str = $data;
$str = preg_replace("/\n/", "<br>\n", $str);
}
return $str;
}
function dnl($data){
echo d($data) . "<br>\n";
}
function dd($data){
echo dnl($data);
exit;
}
function ddt($message = ""){
echo "[" . date("Y/m/d H:i:s") . "]" . $message . "<br>\n";
}
Run Code Online (Sandbox Code Playgroud)
Laraveldd实际上是一个很棒的函数。然而,发生机制是var_dump和 然后die。
例子:
$arr = [1,2,3,4,5,6];
var_dump($arr);
die();
Run Code Online (Sandbox Code Playgroud)
对于可能对 dd() 等 Laravel 感兴趣的其他人,请查看此 repo -
https://github.com/wanfeiyy/laravel-dd
作曲家需要 --dev symfony/var-dumper
<?php
if (! function_exists('dd')) {
/**
* Dump the passed variables and end the script.
*
* @param mixed
* @return void
*/
function dd()
{
array_map(function ($value) {
if (class_exists(Symfony\Component\VarDumper\Dumper\CliDumper::class)) {
$dumper = 'cli' === PHP_SAPI ?
new Symfony\Component\VarDumper\Dumper\CliDumper :
new Symfony\Component\VarDumper\Dumper\HtmlDumper;
$dumper->dump((new Symfony\Component\VarDumper\Cloner\VarCloner)->cloneVar($value));
} else {
var_dump($value);
}
}, func_get_args());
die(1);
}
}
?>
Run Code Online (Sandbox Code Playgroud)