도구 PHP는 자료 전화를 추가합니다. PHP 개발자를 위한 유용한 도구 목록입니다. 디버깅과 프로파일링에 대해 한 마디 해보자.

프로그래밍 언어는 세 가지 유형으로 나뉩니다.

1. 컴파일된 언어

컴파일된 언어의 작업은 다음 다이어그램으로 표현할 수 있습니다.

즉, 프로그램 수명주기는 다음 단계로 구성됩니다.
1. 프로그램의 소스코드 작성
2. 실행 파일(예: .exe)로 컴파일
3. PC에서 프로그램 실행하기

이 접근 방식은 높은 성능을 제공합니다. 즉, 프로그램을 미리 준비하여 필요한 순간에 간단히 실행시키는 것이다.
모든 사용자는 이 접근 방식에 익숙합니다.

이러한 언어의 예: 어셈블러, C, C++, Pascal

2. 통역언어

따라서 프로그램 수명주기는 다음과 같습니다.
1. 글쓰기
2. 실행

본질적으로 해석된 프로그램은 소위 "스크립트"라고 하며, 이는 인터프리터가 수행해야 하는 일련의 작업에 대한 설명입니다.
즉, 통역사는 큰 프로그램많은 사람들과 다양한 기능. 그리고 프로그램은 어떤 기능을 어떤 순서로 호출할지, 이러한 기능의 상호 작용에 대한 설명을 나타냅니다.

웹 페이지를 만드는 언어와 같은 특정 언어입니다.
예: PHP, 자바스크립트, Python

3. 혼합형

언어가 작동하는 방식 혼합형(컴파일-해석)은 다음 다이어그램으로 설명됩니다.


Java는 특히 컴파일된 해석 프로그래밍 언어를 나타냅니다. Java의 인터프리터는 "가상 머신"이라고 불리며, 이것이 그림에 그렇게 표시된 이유입니다.

질문이 생깁니다. 왜 그렇게 복잡합니까? 사실 이 접근 방식은 컴파일된 언어(실행 속도)와 해석된 언어(OS 독립성 및 보안)의 장점을 결합합니다.

이러한 언어의 예: Java, C#

이 세 가지 접근 방식은 다음과 같이 설명할 수 있습니다.

1. 컴파일된 언어는 기성식품이다. 가지고 있으면 좋지만 금방 상해요.
컴파일된 언어로 작성된 프로그램은 OS와 하드웨어에 따라 다릅니다.

2. 통역언어는 냉동식품이다. 보관은 잘 되는데 요리하는데 시간이 오래 걸려요
통역 언어용으로 작성된 프로그램은 이식성이 뛰어나고 통역사가 있는 곳이면 어디에서나 작동하며 안전하지만...
변환 프로세스에는 시간이 걸리며 이는 성능에 영향을 미칩니다.

3. 결합된 언어는 반제품과 비교할 수 있습니다. 준비가 빠르고 오래 보관할 수 있습니다. 하지만 아시다시피 갓 조리한 음식보다 맛이 더 나쁠 것입니다.
결합된 프로그래밍 언어로 작성된 프로그램은 통역사의 기능에 따라 제한됩니다. 즉, 그러한 프로그램이 사용할 수 있는 기능은 항상 컴파일된 언어로 작성된 프로그램이 사용할 수 있는 기능보다 적습니다.

지금까지 우리는 다음 언어로 작성된 프로그램에 대해 이야기했습니다. 고급 언어, 실행하기 전에 컴파일해야 합니다. 즉, 두 개의 안정적인 상태에 해당하는 두 문자로 구성된 기계어로 번역되어야 합니다. 컴파일러- 그건 너무해 컴퓨터 프로그램, 입력은 해당 언어로 작성된 소스 텍스트가 있는 파일입니다. 높은 레벨. 이 파일은 많은 운영 체제에서 호출됩니다. 소스 모듈. 컴파일러는 프로그램을 기계어로 번역하고 이를 다음과 같은 다른 파일에 기록합니다. 객체 모듈.

가장 간단한 경우에는 개체 모듈의 내용을 RAM에 로드하여 실행할 수 있습니다. 그러나 대부분의 경우 개체 모듈은 다음과 같아야 합니다. 함께 모으다 (링크)다음을 포함하는 다른 객체 모듈과 함께 추가 모듈프로그램, 시스템 기능, 서비스 정보, 기타 프로그램 실행에 필요한 데이터입니다.

레이아웃이 수행됩니다. 특별 프로그램, 소위 "링커" (링커)또는 커뮤니케이션 편집자. 입력은 객체 모듈이 포함된 파일이고 출력은 다음과 같습니다. 실행 가능한 모듈 (실행 가능한 모듈)– 실행 준비가 완전히 완료된 프로그램이 포함된 파일입니다. 이 파일은 RAM에 로드되어 실행됩니다.

컴파일과 링크가 하나의 활동으로 결합되는 경우가 많습니다. 이를 위해 컴파일러에는 특별한 명령이 주어지며 작업 직후 링커 자체를 호출합니다. 프로그래머에게는 이 모든 것이 단일 프로세스로 나타나고 컴파일 종료 및 링크 시작에 대한 메시지만 디스플레이 화면에 나타납니다.

위에서 설명한 모든 내용은 컴파일된 프로그래밍 언어에 일반적입니다. 컴파일과 링크가 필요하지 않은 해석된 프로그래밍 언어를 구성하는 또 다른 언어 클래스입니다. 이것들은 또한 고급 언어이기 때문에 그 언어로 작성된 프로그램은 종종 호출됩니다. 스크립트 (스크립트)또는 시나리오, 기계어로 번역이 필요합니다. 이를 위해 만들어졌습니다. 교환원 통역 프로그램프로그램에 녹음되었습니다. 컴파일러와 달리 인터프리터 프로그램은 전체 텍스트를 기계어로 번역하는 것이 아니라 각 문장을 개별적으로 번역하고 결과 기계어 코드를 즉시 실행합니다.

프로그램을 해석하는 것은 각 명령문이 먼저 기계어 코드로 변환되기 때문에 실행 파일을 실행하는 것보다 느립니다. 또한, 오류를 찾기 위해 원문을 미리 검토하지 않기 때문에 해석 과정에서 예상치 못한 오류가 발생할 수 있습니다.

그러나 통역 언어는 프로그램을 쉽게 만들 수 있기 때문에 널리 사용됩니다. 사전 변환 없이 프로그램을 작성하고 즉시 실행할 수 있습니다. 프로그램 성능이 만족스럽지 못한 경우 텍스트를 변경하고 재컴파일 없이 프로그램을 즉시 다시 실행할 수 있습니다.

현대 프로그래밍에서는 컴파일된 언어와 해석된 언어의 차이가 모호해졌습니다. 이 합병은 두 가지 방향으로 발생합니다. 한편으로 컴파일러는 해석된 언어를 위해 만들어졌습니다. 고전적인 해석 언어는 항상 언어로 간주되어 왔습니다. 기초적인, 그러나 이제는 이를 위해 많은 컴파일러가 작성되었습니다. 프로그래머에게는 선택권이 있습니다. 로 작성된 프로그램 기초적인, 해석되어 즉시 실행될 수도 있고, 실행 가능한 모듈로 사전 컴파일되어 보다 편리한 다른 시간에 실행될 수도 있습니다.

반면에 통역사는 이미 해석되고 실행된 명령문의 기계어 코드를 저장하는 방법을 배웠습니다. 예를 들어 루프에서 이러한 명령문을 반복적으로 실행할 때 인터프리터는 미리 만들어진 기계 명령어를 사용하므로 작업 속도가 크게 향상됩니다. 그러한 통역사를 통역사라고합니다. JIT 통역사 (적시). 이는 기존 통역사보다 훨씬 빠르게 작동하므로 점점 더 널리 보급되고 있습니다.

의심의 여지 없이 PHP는 개발자들 사이에서 가장 인기 있는 언어 중 하나이며 혁신적이고 역동적인 웹 애플리케이션을 만드는 데 도움이 됩니다. PHP 개발자는 작업 흐름과 웹 관련 작업을 더 쉽고 빠르며 더 좋게 만드는 데 사용할 수 있는 유용하고 편리한 PHP 도구를 계속 찾고 있습니다. PHP 개발자를 위해 인터넷을 통해 사용할 수 있는 다양한 PHP 도구가 있지만 적절한 PHP 도구를 찾는 것은 상당히 힘든 작업이며 노력과 시간이 필요합니다.

귀하의 소중한 시간과 노력을 절약하기 위해 저는 귀하의 개발 작업에 도움이 되고 혁신적이고 유용한 웹 애플리케이션을 만들 수 있게 해주는 개발자를 위한 최고의 PHP 도구 중 일부를 모았습니다.

기사가 마음에 드시면 다른 기사에도 관심이 있으실 것입니다.

1. 디버그바

DebugBar는 무료이며 오픈 소스모든 PHP 프로젝트에 통합하고 프로파일링 데이터를 수집하고 표시할 수 있는 앱입니다. 종속성이 없으며 Ajax 요청을 지원하며 잘 알려진 라이브러리에 대한 일반 데이터 수집기와 수집기가 포함되어 있습니다. 막대는 바닥글에 있는 100% JavaScript입니다(예: Dev. Tools). 새로운 수집기와 보기를 쉽게 추가할 수 있으며 이전 요청을 저장/재실행할 수 있습니다.

2. 몬스타 FTP


Monsta FTP는 언제 어디서나 브라우저에서 바로 FTP 파일 관리 기능을 제공하는 오픈 소스 PHP/Ajax 클라우드웨어입니다. 마치 마술처럼 파일을 브라우저에 드래그 앤 드롭하여 업로드되는 모습을 볼 수 있습니다. 화면상의 파일 편집을 지원합니다. 다국어 지원도 있습니다. Chrome, Firefox, Internet Explorer 및 Safari에서 테스트되었습니다. GNU 일반 공중 사용 허가서에 따라 배포됩니다. 무료로 다운로드하여 자신의 서버에 설치할 수 있습니다.


Phalcon PHP는 높은 성능과 낮은 리소스 소비를 제공하는 C 확장으로 제공되는 웹 프레임워크입니다. Phalcon PHP는 플랫폼 독립성을 염두에 두고 C로 작성되었습니다. 결과적으로 Phalcon PHP는 Microsoft Windows, GNU/Linux, Mac OS X에서 사용할 수 있습니다. 선택한 시스템에 맞는 바이너리 패키지를 다운로드하거나 소스에서 빌드할 수 있습니다.

4.핀바


Pinba는 실시간 모니터링/통계 역할을 하는 MySQL 스토리지 엔진입니다. 서버 MySQL을 읽기 전용 인터페이스로 사용하는 PHP. 여러 PHP 프로세스에 의해 UDP를 통해 전송된 데이터를 축적하고 처리하며 사람이 읽을 수 있는 간단한 "보고서" 형식으로 통계를 표시합니다. 또한 보다 정교한 보고서 및 통계를 생성할 수 있도록 원시 데이터에 대한 읽기 전용 인터페이스를 제공합니다. .

5. 케이스박스


CaseBox는 기록, 작업 및 파일을 저장하고 관리하기 위한 오픈 소스 및 PHP/MySQL 기반 웹 애플리케이션입니다. 여기에는 무제한 수준의 디렉토리를 생성하고 원하는 구조로 항목을 저장할 수 있는 데스크톱과 유사한 인터페이스가 있습니다. 마감일이 있는 작업을 생성하고 사용자에게 할당할 수 있으며 진행 상황을 쉽게 추적할 수 있습니다. 클라이언트의 정보와 원하는 수의 파일도 저장할 수 있습니다. 파일의 내용은 색인화되어 내용이 포함된 PDF/Word.. 파일을 찾는 것이 매우 빠릅니다.

6. 무네


Munee는 웹사이트 자산의 최적화 및 조작과 관련된 많은 작업을 처리하는 올인원 라이브러리입니다. 라이브러리에는 서버측과 클라이언트측 모두에서 리소스를 캐시할 수 있는 강력한 캐싱 기능이 있습니다. 이는 PHP 이미지 조작 라이브러리와 잘 통합됩니다. 이미지 크기 조정이나 자르기(그리고 나중에 캐싱)를 상상해보세요. Munee는 LESS, SCSS 및 CoffeeScript를 자동으로 컴파일할 수 있습니다. 또한 CSS + JS 파일을 단일 요청으로 결합할 수 있습니다. 또한 이러한 CSS-JS 파일은 더 나은 성능을 위해 축소될 수 있습니다.

7. PHP이미지워크숍


PHPImageWorkshop은 PHP로 이미지를 관리하는 데 도움이 되는 GD 라이브러리를 사용하는 오픈 소스 클래스입니다. 이 클래스는 Photoshop 및 GIMP와 같은 사진 편집 소프트웨어와 유사합니다. 각 레이어에는 배경 이미지가 있는 여러 레이어 또는 레이어 그룹을 중첩할 수 있습니다.
이 클래스는 무한한 이미지 중첩(워터마크 추가), 회전(단지 45/90°가 아님), 크기 조정, 자르기(썸네일) 등 가능한 가장 유연한 것으로 간주되었습니다. ImageWorkshop 개체는 레이어이자 동시에 그룹입니다. 배경 이미지와 배경 상단에 하위 레이어 스택이 있습니다.


Sylius는 오픈 소스입니다. 그리고 무료 PHP용 전자상거래 솔루션(Symfony2 기반). 모든 규모의 매장을 관리하고 복잡한 제품 + 카테고리를 관리할 수 있습니다. 제품은 세율이 다를 수 있으며 다양한 배송 방법이 지원되며 Omnipay(다중 게이트웨이 결제 처리 라이브러리)와 통합됩니다.

9. 피코


Pico는 매우 적은 작업을 수행할 수 있는 오픈 소스 CMS 애플리케이션입니다. 이것이 핵심입니다. 플랫 파일을 데이터베이스로 사용하고 PHP로 구축되었습니다. 간단히 말해서 설정이 필요 없으며 앱이 즉시 작동됩니다. 내용은 .md 파일에 저장되며 마크다운 형식이 사용되며 즐겨찾기에서 편집할 수 있습니다. 텍스트 에디터. 디자인/테마 설정을 위해 Pico는 Twig 템플릿 엔진을 사용하며 잘 문서화되어 있습니다.


phpMyFAQ는 매우 안정적인 오픈 소스 PHP F.A.Q입니다. 좋은 F.A.Q를 구축하기 위한 많은 기능을 갖춘 애플리케이션입니다. 체계. 카테고리, 항목, 사용자를 관리하고 통계를 볼 수 있는 강력한 관리 인터페이스가 있습니다. 사용자가 질문하거나 답변하고 댓글을 달 수 있도록 하거나 관리자 전용으로 유지할 수 있습니다. 사용자가 관련 답변을 쉽게 찾을 수 있는 고급 검색 시스템이 있습니다. FAQ 페이지에는 "가장 인기 있는 질문, 최신 질문, 끈적한 질문"과 같은 바로 사용할 수 있는 모듈이 있습니다. HTML-CSS를 사용하여 모양과 느낌을 사용자 정의할 수 있고 인터페이스는 다국어를 지원하며 모든 질문-답변은 PDF(자동 목차 포함)로 내보낼 수 있습니다.

독자 여러분, 오늘 저는 Kohana 3.1 프레임워크를 사용하여 PHP 프로그래밍을 계속 공부할 것을 제안합니다. 나는 이 기사와 비디오 튜토리얼을 관리 패널의 자료 게시 주제에 전념할 것입니다.

오늘의 실천 계획:

  • 관리자 패널에서 자료를 추가하기 위한 양식을 만듭니다. 추가 양식에는 카테고리 이름(게시된 자료가 선택한 카테고리에 추가됨)이 포함된 드롭다운 목록과 자료 자체의 텍스트 내용을 입력하기 위한 영역(텍스트 영역)이 포함됩니다.
  • 시각적 편집기인 CKEditor를 자료 콘텐츠 입력 영역에 연결합니다.
  • JavaScript 스크립트 삽입으로부터 입력 자료를 보호합니다. HTML Purifier라고 하는 JavaScript에서 컨텐츠를 정제하는 특수 라이브러리가 있습니다(사이트 컨텐츠에 악성 JavaScript가 유입될 수 있는 문제는 아래에 설명되어 있습니다).

비디오 튜토리얼

연결되는 순간부터 비주얼 편집기문제는 콘텐츠에 악성 자바스크립트가 유입될 가능성이 있다는 것입니다. 사실은 시각적 편집기가 HTML 태그를 추가하여 텍스트 형식을 변경한다는 것입니다. 따라서 콘텐츠의 형식을 유지하려면 HTML 태그를 텍스트 엔터티로 바꾸지 않고(즉, PHP 함수 htmlspecialchars를 "추적"하지 않고) 시각적 편집기의 결과로 얻은 HTML 코드를 데이터베이스로 보내야 합니다. HTML 마크업과 함께 악성 JavaScript가 쉽게 데이터베이스로 전송되어 자료 표시 페이지에서 성공적으로 실행될 수 있습니다.

JavaScript 구현 문제에 대한 해결책은 HTML Purifier 필터 라이브러리를 연결하는 것입니다. Kohana 3.1에 맞게 수정된 Purifier 버전은 GitHub에서 다운로드할 수 있습니다.

HTML Purifier를 Kohana 3.1에 연결하는 과정을 설명하겠습니다.

  • GitHub에서 다운로드한 아카이브는 kohana\www\modules\htmlpurifier\ 폴더에 압축을 풀어야 합니다.
  • 에서 다운로드하세요. HTML Purifier 웹 사이트에서 최신 버전의 라이브러리를 찾아 해당 내용을 kohana\www\modules\htmlpurifier\vendor\htmlpurifier\ 폴더에 복사합니다.
  • 새로운 Purifier 모듈을 bootstrap.php 파일에 연결하기 위한 지침을 추가합니다. "orm" => MODPATH."orm" 코드를 찾아 바로 아래에 "htmlpurifier" => MODPATH."htmlpurifier" 줄을 추가합니다.

이제 우리는 방법을 사용할 수 있습니다 보안::xss_clean($content)변수의 내용을 지우려면 $content자바스크립트에서. 이 방법재료 모델의 목록 3에 직접 적용됩니다(아래 참조).

목록 2. 데이터베이스에 자료 저장을 처리하는 컨트롤러 코드

If(isset($_POST["materialsavebtn"])) ( $categoryId = Arr::get($_POST, "categoryId", ""); $content = Arr::get($_POST, "content", "" ); $material = ORM::factory("material"); $material->addMaterial($categoryId, $content); 요청::initial()->redirect("admin");

7행에서 볼 수 있듯이, (우리가 생성한) 머티리얼 모델은 머티리얼을 데이터베이스에 직접 저장하는 addMaterial() 메소드로 보완되어야 합니다. addMaterial() 메소드의 코드는 목록 3에 표시됩니다.

목록 3. 머티리얼 모델의 기능을 확장하는 머티리얼 지속성 방법

공용 함수 addMaterial($categoryId, $content) ( $this->category_id = $categoryId; $this->content = Security::xss_clean($content); $this->save(); )

보다 새로운 방법 4번째 줄에? 이는 사이트 콘텐츠에 JavaScript를 도입하는 것과 똑같은 보호 기능입니다. 이제 ... 태그에 작성된 모든 코드가 제거됩니다.

아주 보여줄 시간이야 편리한 방법재료 테이블의 ctime 및 mtime 필드를 채웁니다(필드는 각각 재료의 생성 및 수정 시간을 저장합니다).

머티리얼 모델 선언 시작 부분에 두 줄을 작성하면 충분합니다.

보호됨 $_created_column = array("column" => "ctime", "format" => TRUE); protected $_updated_column = array("column" => "mtime", "format" => TRUE);

Kohana는 Unix 시간 형식으로 데이터베이스에 레코드 생성 또는 수정 시간을 자동으로 삽입합니다.



질문이 있으신가요?

오타 신고

편집자에게 전송될 텍스트: