Clockwork는 브라우저에서 바로 사용할 수 있는 PHP용 개발 도구입니다. Clockwork는 HTTP 요청, 명령, 대기열 작업 및 테스트에 대해 요청 데이터, 성능 지표, 로그 항목, 데이터베이스 쿼리, 캐시 쿼리, Redis 명령, 전달된 이벤트, 대기 중인 작업, 렌더링된 보기 등을 포함하여 애플리케이션 런타임에 대한 통찰력을 제공합니다. .
이 저장소에는 Clockwork의 서버측 구성요소가 포함되어 있습니다.
자세한 내용은 Clockwork 웹사이트에서 확인하세요.
Composer를 통해 Clockwork 라이브러리를 설치합니다.
composer require itsgoingd/clockwork
축하합니다. 완료되었습니다! 명령이나 대기열 작업 프로파일링과 같은 더 많은 기능을 활성화하려면 vendor:publish
Artisan 명령을 통해 구성 파일을 게시하세요.
참고: Laravel 경로 캐시를 사용하는 경우, Route:cache Artisan 명령을 사용하여 새로 고쳐야 합니다.
Clockwork 웹사이트에서 전체 설치 지침을 읽어보세요.
Clockwork 서버 측 구성 요소는 애플리케이션에 대한 데이터를 수집하고 저장합니다.
Clockwork는 기본적으로 앱이 디버그 모드에 있을 때만 활성화됩니다. Clockwork를 명시적으로 활성화 또는 비활성화하도록 선택할 수도 있고, 추가 분석을 위해 데이터를 노출하지 않고 항상 데이터를 수집하도록 Clockwork를 설정할 수도 있습니다.
기본적으로 유용한 데이터가 많이 수집되지만 구성 파일에서 더 많은 기능을 활성화하거나 필요하지 않은 기능을 비활성화할 수 있습니다.
일부 기능에서는 고급 옵션이 허용될 수 있습니다. 데이터베이스 쿼리의 경우 느린 쿼리 임계값을 설정하거나 중복(N+1) 쿼리 검색을 활성화할 수 있습니다. Clockwork가 수행할 수 있는 모든 작업을 보려면 구성 파일을 확인하세요.
Clockwork가 활성화된 요청을 선택할 수 있는 몇 가지 옵션이 있습니다.
주문형 모드는 Clockwork 앱이 열려 있을 때만 데이터를 수집합니다. 요청을 수집하기 위해 앱 설정에서 설정할 비밀을 지정할 수도 있습니다. 오류만은 4xx 및 5xx 응답으로 끝나는 요청만 기록합니다. 느린 것만은 설정된 느린 임계값보다 높은 응답을 가진 요청만 수집합니다. 또한 사용자 정의 클로저를 통해 수집 및 기록된 요청을 필터링할 수도 있습니다. CORS 실행 전 요청은 기본적으로 수집되지 않습니다.
Clockwork 4.1의 새로운 기능으로 이제 artisan 명령, 대기열 작업 및 테스트도 수집할 수 있습니다. 구성 파일에서 이를 활성화해야 합니다.
Clockwork는 로그 메시지나 데이터베이스 쿼리와 같은 데이터에 대한 스택 추적도 수집합니다. 기본적으로 추적의 마지막 10개 프레임이 수집됩니다. 구성 파일에서 프레임 제한을 변경하거나 이 기능을 비활성화할 수 있습니다.
수집된 데이터를 보고 상호 작용하려면 /clockwork
경로를 방문하세요.
앱은 실행된 모든 요청을 표시합니다. 이는 요청이 브라우저에서 이루어지지 않았지만 예를 들어 API를 개발 중인 모바일 애플리케이션에서 이루어진 경우에 유용합니다.
Chrome 및 Firefox용 브라우저 개발 도구 확장도 사용할 수 있습니다.
이제 Clockwork에서는 앱의 도구 모음 형태로 기본 요청 정보를 표시하는 옵션을 제공합니다.
도구 모음은 클라이언트측에서 완전히 렌더링되며 작은 자바스크립트 라이브러리를 설치해야 합니다.
Clockwork 웹사이트에서 자세히 알아보세요.
clock() 도우미를 통해 간단한 문자열부터 배열이나 개체, 심지어 여러 값까지 모든 변수를 기록할 수 있습니다.
clock (User:: first (), auth ()-> user (), $ username )
clock()
도우미 함수는 첫 번째 인수를 반환하므로 코드에 인라인 디버깅 문을 쉽게 추가할 수 있습니다.
User:: create ( clock ( $ request -> all ()))
로그 수준을 지정하려면 다음과 같이 긴 형식의 호출을 사용할 수 있습니다.
clock ()-> info ( " User { $ username } logged in! " )
타임라인은 애플리케이션 런타임을 시각적으로 표현합니다.
타임라인에 이벤트를 추가하려면 설명으로 이벤트를 시작하고 추적된 코드를 실행한 후 이벤트를 완료하세요. 이벤트를 추가로 구성하기 위해 유창한 API를 사용할 수 있습니다.
// using timeline api with begin / end and fluent configuration
clock ()-> event ( ' Importing tweets ' )-> color ( ' purple ' )-> begin ();
. . .
clock ()-> event ( ' Importing tweets ' )-> end ();
또는 추적된 코드 블록을 클로저로 실행할 수 있습니다. Fluent API 대신 배열 기반 구성을 사용하도록 선택할 수도 있습니다.
// using timeline api with run and array - based configuration
clock ()-> event ( ' Updating cache ' , [ ' color ' => ' green ' ])-> run ( function () {
. . .
});
Clockwork 웹사이트에서 사용 가능한 기능에 대해 자세히 알아보세요.