larabel과 같은 자체 DD() 함수를 쓰는 방법은 무엇입니까?
저는 오랫동안 라라벨을 사용했지만 지금은 워드프레스를 사용하고 있습니다.나는 라라벨을 사용하는 것을 좋아했다.DD()
기능.하지만 워드프레스에서는 이것만 쓸 수 있어요
print_r(),
var_dump(),
var_export()....
이 모든 것은 어레이 전체 또는 객체 확장일 뿐입니다.하지만 어레이와 오브젝트를 처리하기 위해서는 라라벨의 확장 및 폐쇄 메커니즘이 필요합니다.나는 일반적인 dd 니즈로 다음을 사용한다.
if (!function_exists('dd')) {
function dd()
{
echo '<pre>';
array_map(function($x) {var_dump($x);}, func_get_args());
die;
}
}
그것은 잘 작동하지만, 나는 스타일리시하고 조직적인 형태의 리스트가 필요하다.
가능합니까?
라라벨스dd
는 symfony의 VarDump 구성 요소를 사용합니다.글로벌하게 이용할 수 있는dump
출력 형식을 지정하는 함수입니다.유일한 차이점은 쓰레기 처리 후 "죽지 않는다"는 것입니다. 하지만 대부분의 경우 그것은 여러분이 원하지도 않는 것입니다.
- 달려.
composer global require symfony/var-dumper
(워드프레스 프로젝트에 작곡가가 있어야 함) - 더하다
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
symfony/var-buffer 버전 > = 4.1:
var-dumper 버전 4.1 이후dd()
는 이미 선언되어 있습니다.라이브러리를 로드하는 것으로 충분합니다.
버전 <= 4.0:
선언하다dd
함수, 모든 인수를 덤프하고 프로세스를 정지합니다.
if (!function_exists('dd')) {
function dd()
{
foreach (func_get_args() as $x) {
dump($x);
}
die;
}
}
더 많은 기능과 최신 코드를 업데이트했습니다.d
debug functions 패키지의 함수를 나타냅니다.
(아래 답변은 약 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";
}
dd()와 같이 Larabel에 관심이 있는 분은 이 레포(repo)를 확인해 주세요.
https://github.com/wanfeiyy/laravel-dd
라라벨dd
정말 좋은 기능이에요.그러나 현재 진행 중인 메커니즘은var_dump
그리고 나서.die
.
예:
$arr = [1,2,3,4,5,6];
var_dump($arr);
die();
composer는 --dev symfony/var-symplonyper
<?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);
}
}
?>
클래스에 이 네임스페이스를 가져올 수 있습니다.use Illuminate\Support\Debug\Dumper;
변수에 대해 다음과 같이 사용합니다.
(new Dumper)->dump($myVariable);
저는 이렇게 합니다.
function dd($var){
echo "<pre>";
print_r($var);
exit;
}
저는 이렇게 합니다.
function dd($a){
var_dump($a);
exit;
}
항상 쓰고 있어요.심지어 Sublime에 조각도 만들어놨어.
또한 var_masterpiece Chrome 확장 기능을 사용하여 어레이 키를 확장하거나 축소할 수 있습니다.
마법처럼 효과가 있어요.
function dd()
{
array_map(function($x) { var_dump($x); }, func_get_args()); die;
}
대부분의 시간 동안 라라벨 프레임워크로 작업하고 있습니다.dd()
도우미 방법은 매우 어려운 도구가 됩니다.
3에는 Symfony 3.4를 사용합니다.dump($my_vars); die();
내 대표팀을 차서 죽여야만 했어하지만 그것은 곧 매우 이해하기 쉬워졌다.symfony 3.4 프로젝트에 dd() global helper 메서드를 추가했습니다.다음은 예를 제시하겠습니다.
src/
i created 내가 i folder 。Support/
「」의 내부, 「」의Support/
i created 내가 i folder 。helpers.php
파일에는 덤프 도우미 기능이 추가되어 있습니다.
src/지원/도움말php
if (!function_exists('dd')) {
/**
* Dump the passed variables and end the script.
*
* @return void
*/
function dd() {
$args = func_get_args();
call_user_func_array('dump', $args);
die(1);
}
}
파일파일을 해야 할 도 있습니다.helpers.php
에 접속합니다.composer.json
하다
composer.json
{
...
"autoload": {
"psr-4": {
"App\\": "src/"
},
"files": [
"src/Support/helpers.php"
]
},
...
}
@colored-panda 답변은 더 이상 작동하지 않습니다.업데이트된 코드는 다음과 같습니다.
use Symfony\Component\VarDumper\VarDumper;
if (! function_exists('dd')) {
/**
* Dump the passed variables and end the script.
*
* @param mixed $vars
* @return void
*/
function dd(...$vars)
{
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: *');
header('Access-Control-Allow-Headers: *');
http_response_code(500);
foreach ($vars as $v) {
VarDumper::dump($v);
}
die(1);
}
}
패키지 mp091689/dump-die를 사용하면 다음 작업을 수행할 수 있습니다.
dd($variable);
또는
dd($variable1, $variable2, ..);
가장 간단한 해결책은 다음과 같습니다.
if(!function_exists('dd'))
{
function dd( $result )
{
echo '<pre>'; print_r($result); die();
}
}
if(!function_exists('dd')) {
function dd($arrayData, $exit=TRUE) {
echo "<pre>"; print_r($arrayData);
if($exit===TRUE) die();
}
}
언급URL : https://stackoverflow.com/questions/41669246/how-to-write-own-dd-function-same-as-laravel
'programing' 카테고리의 다른 글
REST 보증 - 범용 리스트의 시리얼화 해제 (0) | 2023.04.01 |
---|---|
리액트 훅 - show Component Update를 구현하려면 어떻게 해야 합니까? (0) | 2023.04.01 |
원형 구조를 JSON으로 변환 -- 불만족스러운 필드를 찾을 수 있는 방법이 있습니까? (0) | 2023.03.27 |
실행 중인 WordPress 버전을 확인하려면 어떻게 해야 합니까? (0) | 2023.03.27 |
리액트 쓸까?Pure Component는 어디에나 있습니까? (0) | 2023.03.27 |