it-swarm-ko.tech

dpm ()은 화면에 결과를 표시하지 않습니다

file_scan_directory ()를 실행하는 데 약 10 초가 걸린다 와 같은 문제가 있습니다. 방금 dpm(func_get_args()) 제안을 시도했지만 불행히도 나에게 아무것도 보이지 않습니다.

모든 캐시를 지우고 cron 작업을 실행했습니다. 내가 무엇을 놓치고 있습니까?

23
Jimmy

print $messages;에서 page.tpl.phptemplate 파일. 기본적으로 devel (dpm)은 사이트의 메시지 영역에 내용을 인쇄하도록 구성되어 있습니다. 어떤 이유로 템플릿이 $messages, 아무것도 보이지 않습니다.

28
svetlio
  1. 때때로 krumo($variable)이 작동하지 않을 때 dpm($variable)이 작동 할 수 있습니다.

  2. 때때로 print dpm($variable)이 작동하지 않을 때 dpm($variable)이 작동 할 수 있습니다.

    1. 더 이상 print $messagespage.tpl.php가 없으면 해결책이 될 수 있습니다. 어쩌면 다시 추가 할 수 있습니다.
13
leymannx

Devel에 액세스 할 수있는 올바른 권한으로 Drupal 사이트에 로그인해야합니다. 관리자가 로그인해야합니다.

9
Powdermonkey1850

devel_debug_log 를 적극 권장합니다. devel 모듈이 필요하며 ddl () 함수를 제공합니다. ddl은 구성에서 보고서에 페이지를 추가하므로 워치 독으로 인쇄하는 것과 비슷하지만 디버그 메시지를 보낼 수있는 멋진 클린 페이지가 있으며 메시지를 보내기 전에 경쟁 유형 조건에 대해 걱정하지 않아도됩니다. 그것들을 볼 수있는 기회, 또는 귀하의 경우와 같이 주제 문제.

(이는 모든 종류의 dpm () 메시지를 보여주지 않기 때문에 모든 종류의 API를 만들려고 할 때 매우 유용한 도구입니다.)

9
UnsettlingTrend

dpm()이 (가)이 모듈에서 선언 된 함수이므로 Devel 모듈을 활성화하고 설치했는지 확인하십시오.

dpm()here 에서 가져온 설명입니다.

Drupal_set_message ()를 사용하여 페이지의 '메시지'영역에 변수를 인쇄합니다. 이 기능을 사용하면 사이트를 실행하는 코드에서 작업 할 때 하나 이상의 변수를 추적 할 수 있습니다. Devel 모듈은 이제 Krumo와 함께 제공되므로 출력이 작고 눈에 거슬리지 않습니다.

dpm($input, $name = NULL)

어떤 이유로 Krumo를 사용하지 않는 경우 $ name 매개 변수를 사용하여 dpm ()에 대한 다른 호출을 구별 할 수 있습니다.

Devel을 다운로드하여 활성화 한 후 file_scan_directory ()에서 답변을 실행하는 데 약 10 초가 소요됩니다 을 다시 시도하면 작동합니다.

8
Chapabu

템플릿 파일을 건드리지 않고 함수 내부에서 인쇄하려면 다음을 시도하십시오.

$nid = 3;
$node = node_load($nid);
dpm($node);
print theme('status_messages'); 
5
Gavin Mcdonough

때때로 페이지의 리소스가 404를 반환하는 결과입니다.

Drupal은 404 페이지를 렌더링하고 세션에서 메시지를 가져 와서 지우고 보이지 않는 404 페이지에 넣습니다. 그런 다음 메인 페이지가 메시지를 가져올 때 남아있는 것이 없습니다.

네트워크 탭을 열고 404 상태의 리소스가 있는지 확인할 수 있습니다.

여기에서 쉬운 해결책은 settings.php 에서이 줄의 주석을 해제하여 빠른 404를 활성화하는 것입니다.

# drupal_fast_404();

또 다른 좋은 해결책은 SlakeFistcrunch가 제안한대로 devel_debug_log 를 사용하는 것입니다.

3
Felix Eve

때때로 AJAX의 경우 메시지가 잘 리거나 작동하지 않을 수 있습니다.

보다 안정적인 방법은 다음과 같이하는 것입니다 (완료 후 제거).

var_dump($data); die();

또는 dd() (Devel의 일부)를 사용할 수도 있습니다.

dd(func_get_args());

그런 다음 임시 폴더의 로그 파일을 확인하십시오 (예 :.

$ tail -f /tmp/drupal_debug.txt

위의 방법을 사용하는 것이 더 편리하고 빠르며 현재 사이트 렌더링을 중단하지 않고 AJAX 또는 기타 요청을 지원할 수 있습니다.


여전히 dpm()을 좋아한다면 kint()도 사용해보십시오 (이 변수를 인쇄하려면 포함 된 Kint 하위 모듈을 활성화하십시오).

2
kenorb

일부 dpm() 호출 만 작동하지 않으면 dpm() 충돌로 인한 것일 수 있습니다. 다음 시나리오에서 사용자 정의 양식 제출 핸들러에서 발생하는 것을 보았습니다.

function mymodule_formid_submit($form, &$form_state) {
  dpm($form_state);
}

페이지가 잘 표시되고 WSOD가 없거나 dpm() 메시지가 표시되지 않기 때문에 dpm()의 예외 처리기에서 오류 조건이 발생했다고 생각합니다. ddl($form_state) 대신 Devel Debug Log 모듈에 의해 생성 된 보고서에서 해당 개체를 볼 때 브라우저에서 메모리를 최대로 사용했기 때문에 오류가 재발되지 않을 수 있습니다.

이 문제를 해결하려면 dpm($form_state['values']) 또는 dpm(array_keys($form_state))과 같이 개체의 관련 부분 만 인쇄하십시오.

1
tanius