찾다
백엔드 개발PHP 튜토리얼Drupal -Setup에서 자신의 사용자 정의 엔터티를 구축하십시오

Build Your Own Custom Entities in Drupal - Setup

키 포인트

Drupal의 엔티티는 데이터를 구성하는 강력한 방법이며 특정 유형의 정보를 나타내도록 사용자 정의 할 수 있습니다. 이 튜토리얼은 제목, 설명 및 마감일과 같은 속성을 포함하는 프로젝트라는 커스텀 엔티티 유형을 만드는 방법을 보여줍니다. 새 엔티티 유형을 만들려면 스키마 정의가 선언되어야하며, 이는 데이터베이스 엔티티 데이터 테이블을 생성합니다. 이 튜토리얼은 4 개의 열 (ID, 이름, 설명 및 마감일)이있는 "demo_projects"테이블을 작성하기위한 코드 예제를 제공합니다.

Entity API 모듈은 귀하의 사이트에서 활성화되어 있고 사용자 정의 모듈의 종속성으로 설정되어 있어야하며, 이는 Drupal Core가 부족한 많은 엔티티 처리 기능을 제공합니다. 여기에는 새로운 엔티티 작성, 데이터베이스에 저장 및 표시가 포함됩니다.
    이 자습서는 또한 기본 EntyApicOntroller 클래스의 BuildContent () 메소드를 엔터티를 표시하여 Entity_View () 도우미 기능을 통해 엔티티 목록을 작성하는 방법을 설명합니다. 튜토리얼의 두 번째 부분은 개별 프로젝트 엔티티를 표시하는 페이지 생성을 소개하여 UI를 통해 전계를 가능하게하고 쿼리 및 목록 디스플레이보기에 노출시킵니다.
  • Drupal Entities는 데이터를 구성하는 좋은 방법입니다. 노드, 분류 용어, 댓글 또는 사용자에 익숙하다면 Drupal 7 이후 엔티티임을 알고 있어야합니다. 그들에 대한 또 다른 중요한 측면은 필드 API를 통해 전류 될 수 있다는 것입니다.
  • 이 튜토리얼에서는 자신의 커스텀 엔티티 유형을 정의하고 시작하는 방법을 보여 드리겠습니다. 왜 누구든지 노드를 사용하는 대신 이것을하고 싶어합니까? 훌륭하지만 노드는 때때로 지나치게 복잡 할 수 있습니다. 개정이나 의견과 같은 많은 기능이 필요하지 않을 수 있습니다.
  • 이 자습서에서는 프로젝트 (제목, 설명 및 마감일)에 대한 간단한 정보를 나타내기 위해 "Project"라는 고유 한 사용자 정의 엔티티 유형을 정의합니다. 그런 다음이 유형의 엔티티를 사용하는 것에 대해 조금 배울 것입니다.
  • 계속 학습을 위해 기본 사용자 정의 모듈을 작성하는 방법을 알고 있다고 가정합니다 (내 모듈은 데모라고합니다). 이 주제에 대한 훌륭한 자습서를 여기에서 찾을 수 있습니다. .info 파일을 계속 작성하고 빈 .Module 및 .install 파일을 만듭니다. 또한이 튜토리얼의 모든 소스 코드를 얻을 수있는 git 저장소를 설정합니다 (각 섹션마다 하나의 지점, 두 섹션이 게시됩니다).
  • 또한 사이트에서 엔티티 API Contrib 모듈을 활성화하고 사용자 정의 모듈의 종속성으로 설정해야합니다. 엔티티 API 모듈은 Drupal Core가 부족한 많은 기능을 제공하기 때문에 엔티티를 처리 할 때 매우 강력합니다.
  • 우리 자신의 드 루 팔 엔티티 유형 정의 새 엔티티 유형 생성 먼저 스키마 정의를 선언해야합니다. 즉, 엔티티 데이터 데이터베이스 테이블을 생성하는 코드를 작성하십시오. 내 Demo.install 파일에는 다음 코드가 있습니다.
  • /**
     * Implements hook_schema().
     */
    function demo_schema() {
    
      $schema = array();
    
      $schema['demo_projects'] = array(
        'description' => 'The base table for the Project entity',
        'fields' => array(
          'id' => array(
            'description' => 'Primary key of the Project entity',
            'type' => 'serial',
            'unsigned' => TRUE,
            'not null' => TRUE,
          ),
          'name' => array(
            'description' => 'Project name.',
            'type' => 'varchar',
            'length' => 255,
            'not null' => FALSE,
          ),
          'description' => array(
            'description' => 'Project description.',
            'type' => 'text',
            'size' => 'big',
            'not null' => FALSE,
            'default' => NULL
          ),
          'deadline' => array(
            'description' => 'Project deadline.',
            'type' => 'int',
            'length' => 11,
            'not null' => FALSE,
          ),
        ),
        'primary key' => array('id'),
      );
    
      return $schema;
    }
    이것은 hook_schema ()의 간단한 구현입니다. demo_projects 테이블을 만듭니다. 큰 문제가 아닙니다.

    다음은 hook_entity_info ()를 구현해야합니다. 이 후크에서 많은 옵션을 지정할 수 있지만 여기에 가장 기본적이고 필요한 옵션이 있습니다 (이것은 Demo.Module 파일에 있습니다) : .

    이 후크를 사용하면 엔티티 머신 이름을 나타내는 $ info 배열의 새 키를 반환합니다. 이 배열에서는 옵션을 지정합니다 (이 자습서에서 더 많은 옵션을 추가 할 것입니다). 이제 우리는 태그 (엔티티 유형의 읽기 가능한 이름), 엔티티 데이터를 저장하는 기본 테이블, 엔티티 식별자의 속성 역할을하는 엔티티 키 및 엔티티 유형을 지정하는 모듈을 사용하여 사용됩니다. 마지막은 필수는 아니지만 권장됩니다.

    이런 식으로, 우리는 자체 기본 엔티티 유형을 Drupal에 등록합니다. 작동하는지 테스트하려면 모듈을 처음으로 활성화하고 데이터베이스에서 테이블이 생성되었는지 확인하십시오. 그런 다음 사용할 것이 있도록 몇 줄로 채우십시오.

    마지막으로, hook_menu ()를 사용하여 Drupal을 사용하여 경로 (테스트를위한 경로에 대해)를 등록하고 다음을 콜백 함수에 붙여 넣습니다.
    /**
     * Implements hook_entity_info().
     */
    function demo_entity_info() {
    
      $info = array();
    
      $info['project'] = array(
        'label' => t('Project'),
        'base table' => 'demo_projects',
        'entity keys' => array(
          'id' => 'id',
          'label' => 'name',
        ),
        'module' => 'demo',
        'entity class' => 'Entity',
        'controller class' => 'ProjectEntityController',
      );
    
      return $info;
    }
    먼저, 우리는 entity_load () 함수를 사용하여 ID 1과 2가있는 프로젝트 엔티티를로드 한 다음 DEVEL DPM () 함수를 사용하여 (따라서 사이트에서 테스트를 위해 DEVEL이 활성화되어 있는지 확인)를 사용합니다. 스크린 우수합니다. 페이지의 콜백 함수가 무언가를 반환해야한다는 것을 잊지 마십시오. 그렇지 않으면 구축되지 않습니다.

    또는 EntityFieldQuery 클래스를 사용하여 원하는 속성 (ID가 아닌)을 기반으로 새 엔티티를 쿼리 할 수 ​​있습니다. 이 작동 방식에 대한 자세한 내용은이 itepoint 튜토리얼을 확인하여 시작하는 데 도움이됩니다.

    엔티티 클래스 및 컨트롤러 불행히도, Drupal Core는 엔티티를 처리하기 위해 너무 많은 도우미 기능을 제공하지 않습니다 (Entity_load ()는 거의 독특합니다). 그러나 엔티티 API 모듈 이이 격차를 메 웁니다.

    기능을 사용하려면 이전에 선언 한 엔티티 정보를 변경하고 엔티티를 처리하는 데 사용할 수있는 PHP 클래스를 지정해야합니다. 이제 hook_entity_info () 구현에 입력 된 프로젝트 어레이에 두 개의 키를 추가 할 것입니다 : 위에서 언급 한 코드에는 이미
    INSERT INTO `demo_projects` (`id`, `name`, `description`, `deadline`)
    VALUES
        (1, 'Summer House', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', 1397501105),
        (2, 'Winter House', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', 1397501132);
    가 포함되어 있습니다 EntityApicOntroller 클래스 (모듈 ENTITY.CONTROLLER.INC 파일에 위치)는 처리 엔티티에 대한 합리적인 기본값을 제공합니다. 기본 Drupal Core DrupaldEfaultentityController 클래스를 확장하고 CRUD 작업을 수행하는 (다른 많은 것들 중에서도) 책임이 있습니다.

    두 클래스 모두 사용자 정의 모듈에서 확장하여 기능을 조정할 수 있습니다 (예 : 쿼리,로드 또는 엔티티 표시). 나중에이 작업을 수행하는 방법을 볼 것입니다.

    그러나 먼저, 새로운 엔티티를 저장하는 방법을 보여 드리고 싶습니다. 현재 데이터베이스에는 ID 1과 2가있는 2 개의 레코드가 있습니다. 위의 테스트 페이지 콜백 함수에 쓴 코드를 조정하여 ID 3이없는 새 엔티티를 만들고 싶습니다. 다음과 같이 보일 수 있습니다

    보시다시피, 이제 우리는 3 개의 프로젝트 엔티티를로드하고 세 번째 엔티티가 있는지 확인하려고합니다. 존재하지 않으면 엔티티 API가 제공하는 entity_create () 도우미 함수를 사용하고 속성을 임의의 값으로 설정 한 다음 엔티티의 Save () 메소드를 사용하여 데이터베이스에 지속됩니다. 이 메소드는 엔티티 클래스에서 제공하며 그 작업은 위에서 정의한 컨트롤러 클래스에서 Save () 메소드를 호출하는 것입니다. 이 방법은 엔티티를 지속하는 데 필요한 논리를 수행합니다. 그러나이 모든 것은 무대 뒤에서 발생합니다. 우리는 그것에 대해 걱정할 필요가 없습니다.

    페이지를 다시로드하면 2 개의 프로젝트 엔티티 만 반환해야하지만 두 번째로는 3이 있어야합니다.
    /**
     * Implements hook_schema().
     */
    function demo_schema() {
    
      $schema = array();
    
      $schema['demo_projects'] = array(
        'description' => 'The base table for the Project entity',
        'fields' => array(
          'id' => array(
            'description' => 'Primary key of the Project entity',
            'type' => 'serial',
            'unsigned' => TRUE,
            'not null' => TRUE,
          ),
          'name' => array(
            'description' => 'Project name.',
            'type' => 'varchar',
            'length' => 255,
            'not null' => FALSE,
          ),
          'description' => array(
            'description' => 'Project description.',
            'type' => 'text',
            'size' => 'big',
            'not null' => FALSE,
            'default' => NULL
          ),
          'deadline' => array(
            'description' => 'Project deadline.',
            'type' => 'int',
            'length' => 11,
            'not null' => FALSE,
          ),
        ),
        'primary key' => array('id'),
      );
    
      return $schema;
    }
    는 엔티티 클래스 를 커버합니다 이 튜토리얼 의이 부분에서 마지막으로 보여주고 싶은 것은 엔티티를 표시하는 방법입니다. 이를 위해 사용중인 페이지 콜백 기능을 고수하여 실제 목록으로 렌더링합니다. 먼저, 기본 EntyApicOntroller 클래스의 buildContent () 메소드를 무시해야합니다. 그 이유는 컨트롤러가 데이터에 대해 가정 할 수 없으므로 표시 방법에 대한 정보를 제공해야합니다. 먼저, 이전 클래스를 확장하는 컨트롤러 클래스를 선언 해 봅시다 :

    클래스 이름 ProjectentityController를 선택했습니다. hook_entity_info () 구현에서 컨트롤러 클래스 키에 대해 설정 한 값을 교체해야합니다. 잊지 마세요.

    이 클래스에서는 원래 클래스에서 메소드 이름을 복사하여 부모 클래스가 반환하는 것을 반환 할 수 있습니다. 이 클래스에서는 원래 클래스에서 메소드 이름을 복사하여 상위 클래스가 반환되는 것을 반환 할 수 있습니다. 우리는 기본적으로 두 개의 새로운 항목을 배열에 추가했습니다. 첫 번째는 설명을

    로 랩핑하고 두 번째는 단락 레이블 사이의 형식 날짜를 출력합니다. 이것은 기본 드 루팔 테마입니다. 여기서 무슨 일이 일어나고 있는지 이해하지 못하면 검토하십시오. 그러나 누락 된 프로젝트 이름을 알 수 있습니다. Drupal은 hook_entity_info ()가 구현 한 엔티티 키에서 태그로 지정하기 때문에 자동으로 렌더링합니다. 마지막 단계는 페이지 콜백 함수로 이동하여 엔티티를 표시하는 것입니다. 빠른 방법 (데모 목적으로 만) :

    이전과 마찬가지로 먼저 해당 ID로 엔티티를로드합니다. 그런 다음 Entity_View () 도우미 함수를 통해 실행합니다. 결국 방금 덮어 쓴 BuildContent () 메소드를 호출합니다. 이 함수는 각 엔티티의 렌더링 된 배열 목록을 반환합니다. 우리는 각각을 렌더링하고 결과를 $ 출력 배열에 저장 한 다음 그것을 연결하고 반환합니다.

    페이지를 새로 고칠 수 있으며로드 한 모든 엔티티 목록이 표시됩니다. 변경 사항이 보이도록 캐시가 지워 있는지 확인하십시오.

    결론 이 튜토리얼에서 우리는 코드의 엔티티 유형을 정의하여 Drupal의 엔티티에 대해 배우기 시작합니다. 우리는 그들이 나타내는 데이터에 대한 스키마 정의를 작성하는 방법과 Drupal에 등록하는 방법을 배웠습니다. 그런 다음 엔티티 API Contrib 모듈을 사용하여 엔티티를 객체 지향적 인 방식으로 처리하는 힘을 볼 수 있습니다.

    이 튜토리얼의 두 번째 부분에서는 세 가지 주요 측면을 살펴 보겠습니다. 먼저 개별 프로젝트 엔티티를 표시하고 프로젝트 관리를위한 관리 인터페이스를 시작하기위한 일부 페이지를 만들 것입니다. 둘째, 우리는 UI를 통해 그것을 수비 할 수있게 할 것입니다. 셋째, 적절한 쿼리 및 목록 디스플레이를 수행 할 수 있도록 조회수에 노출됩니다. 계속 지켜봐!

    Drupal에서 맞춤형 엔티티를 구축 할 때 FAQ Drupal Custom Entity를 만들기위한 전제 조건은 무엇입니까?

    Drupal Custom Entities를 만들기 전에 Drupal의 엔티티 API에 대한 기본적인 이해가 있어야합니다. 또한 PHP 개념 및 객체 지향 프로그래밍의 개념에 익숙해야합니다. 또한 Drupal 개발 환경을 설정해야합니다. 여기에는 로컬 컴퓨터 또는 서버에 Drupal을 설치하고 구성하는 것이 포함됩니다.

    Drupal에 번들이있는 사용자 정의 컨텐츠 엔티티를 만드는 방법은 무엇입니까?

    Drupal에 번들이있는 사용자 정의 컨텐츠 엔티티 작성에는 여러 단계가 포함됩니다. 먼저, 엔티티와 해당 속성을 사용자 정의 모듈에서 정의해야합니다. 그런 다음 엔티티를 추가하고 편집하려면 양식을 작성해야합니다. 그런 다음 엔터티 운영의 경로를 정의해야합니다. 마지막으로 엔티티를 표시하려면 뷰 빌더를 만들어야합니다.

    Drupal의 컨텐츠 엔티티와 구성 엔티티의 차이점은 무엇입니까?

    Drupal의 컨텐츠 엔티티는 사용자가 작성, 편집 및 삭제할 수있는 컨텐츠 조각입니다. 예로는 노드, 사용자 및 댓글이 있습니다. 반면, 구성 엔티티는 데이터베이스에 저장된 구성 조각이며 코드로 내보낼 수 있습니다. 예로는 뷰, 이미지 스타일 및 사용자 역할이 있습니다.

    Drupal 8에서 컨텐츠 엔티티 유형을 만드는 방법은 무엇입니까?

    Drupal 8에서 컨텐츠 엔티티 유형 생성에는 사용자 정의 모듈에서 엔티티와 해당 속성을 정의하는 것이 포함됩니다. 또한 엔티티를 추가하고 편집 할 수있는 양식을 작성하고 엔티티 작업의 경로를 정의하고 뷰 빌더를 만들어 엔티티를 표시해야합니다.

    엔티티 API 모듈을 사용하여 Drupal에서 사용자 정의 엔티티를 만들 수 있습니까?

    예, 엔티티 API 모듈을 사용하여 Drupal에서 사용자 정의 엔티티를 만들 수 있습니다. 이 모듈은 엔티티와 해당 속성을 처리하는 통일 된 방법을 제공합니다. 또한 제작, 읽기, 업데이트 및 삭제와 같은 엔티티에서 작업을 수행하기위한 API를 제공합니다.

    Drupal Custom Entities를 만드는 것의 이점은 무엇입니까?

    Drupal 사용자 정의 엔티티 작성을 사용하면 자신의 데이터 구조 및 비즈니스 로직을 정의 할 수 있습니다. 이를 통해 사이트를보다 효율적이고 관리 가능하게 할 수 있습니다. Custom Entities를 사용하면 Drupal의 엔티티 API를 활용하여 엔티티를 처리 할 수있는 강력한 도구를 제공합니다.

    Drupal의 사용자 정의 엔티티에 필드를 추가하는 방법은 무엇입니까?

    Drupal의 사용자 정의 엔터티에 필드를 추가하려면 Field API를 사용해야합니다. 여기에는 엔티티의 기본 필드 정의 방법에서 필드를 정의하는 것이 포함됩니다. Field UI 모듈을 사용하여 Drupal Management 인터페이스를 통해 엔티티에 필드를 추가 할 수도 있습니다.

    Drupal에 사용자 정의 엔티티를 표시하는 방법은 무엇입니까?

    Drupal에 사용자 정의 엔터티를 표시하려면 엔티티의 뷰 빌더를 만들어야합니다. 여기에는 EntityViewBuilder 클래스를 확장하고보기 메소드를 구현하는 클래스를 정의하는 것이 포함됩니다. Views 모듈을 사용하여 엔티티의 사용자 정의보기를 만들 수도 있습니다.

    Drupal에서 사용자 정의 엔티티를 추가하고 편집하기위한 양식을 만드는 방법은 무엇입니까?

    사용자 정의 엔티티를 추가하고 편집하기 위해 Drupal에서 양식을 작성하려면 엔티티의 양식 클래스를 정의해야합니다. 여기에는 entityform 클래스를 확장하고 양식을 구현하고, 검증 및 제출하는 방법이 포함됩니다. Drupal에서 사용자 정의 엔티티를 삭제하는 방법은 무엇입니까?

    Drupal에서 사용자 정의 엔티티를 삭제하려면 엔티티 API의 삭제 방법을 사용해야합니다. 여기에는 엔티티를로드하고 삭제 방법을 호출 한 다음 엔티티를 저장하는 것이 포함됩니다. 엔티티 API의 deletemultiple 메소드를 사용하여 여러 엔티티를 한 번에 삭제할 수도 있습니다.

위 내용은 Drupal -Setup에서 자신의 사용자 정의 엔터티를 구축하십시오의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
PHP 이메일 : 단계별 보내기 안내서PHP 이메일 : 단계별 보내기 안내서May 09, 2025 am 12:14 AM

phpisusedforendingemailsduetoitsintegrationwithsermailservices 및 externalsmtpproviders, 1) setupyourphpenvironmentwitheberverandphp, temailfuncpp를 보장합니다

PHP를 통해 이메일을 보내는 방법 : 예 및 코드PHP를 통해 이메일을 보내는 방법 : 예 및 코드May 09, 2025 am 12:13 AM

이메일을 보내는 가장 좋은 방법은 Phpmailer 라이브러리를 사용하는 것입니다. 1) Mail () 함수를 사용하는 것은 간단하지만 신뢰할 수 없으므로 이메일이 스팸으로 입력되거나 배송 할 수 없습니다. 2) Phpmailer는 더 나은 제어 및 신뢰성을 제공하며 HTML 메일, 첨부 파일 및 SMTP 인증을 지원합니다. 3) SMTP 설정이 올바르게 구성되었는지 확인하고 (예 : STARTTLS 또는 SSL/TLS) 암호화가 보안을 향상시키는 데 사용됩니다. 4) 많은 양의 이메일의 경우 메일 대기열 시스템을 사용하여 성능을 최적화하십시오.

고급 PHP 이메일 : 사용자 정의 헤더 및 기능고급 PHP 이메일 : 사용자 정의 헤더 및 기능May 09, 2025 am 12:13 AM

CustomHeadersAndAdAncedFeaturesInpHeAmailEnhanceFectionality.1) 1) CustomHeadersAdDmetAdataFortrackingand Categorization.2) htmlemailsallowformattingandinteractivity.3) attachmentSentUsingLibraries likePhpMailer.4) smtpauthenticimprpr

PHP & SMTP와 함께 이메일 보내기 안내서PHP & SMTP와 함께 이메일 보내기 안내서May 09, 2025 am 12:06 AM

PHP 및 SMTP를 사용하여 메일을 보내는 것은 PHPMailer 라이브러리를 통해 달성 할 수 있습니다. 1) phpmailer 설치 및 구성, 2) SMTP 서버 세부 정보 설정, 3) 이메일 컨텐츠 정의, 4) 이메일 보내기 및 손잡이 오류. 이 방법을 사용하여 이메일의 신뢰성과 보안을 보장하십시오.

PHP를 사용하여 이메일을 보내는 가장 좋은 방법은 무엇입니까?PHP를 사용하여 이메일을 보내는 가장 좋은 방법은 무엇입니까?May 08, 2025 am 12:21 AM

TheBesteptroachForendingeMailsInphPisusingThephPmailerlibraryDuetoitsReliability, featurerichness 및 reaseofuse.phpmailersupportssmtp, proversDetailErrorHandling, supportSattachments, andenhancessecurity.foroptimalu

PHP의 종속성 주입을위한 모범 사례PHP의 종속성 주입을위한 모범 사례May 08, 2025 am 12:21 AM

의존성 주입 (DI)을 사용하는 이유는 코드의 느슨한 커플 링, 테스트 가능성 및 유지 관리 가능성을 촉진하기 때문입니다. 1) 생성자를 사용하여 종속성을 주입하고, 2) 서비스 로케이터 사용을 피하고, 3) 종속성 주입 컨테이너를 사용하여 종속성을 관리하고, 4) 주입 종속성을 통한 테스트 가능성을 향상 시키십시오.

PHP 성능 튜닝 팁 및 요령PHP 성능 튜닝 팁 및 요령May 08, 2025 am 12:20 AM

phpperformancetuningiscrucialbecauseitenhancesspeedandefficies, thearevitalforwebapplications.1) cachingsdatabaseloadandimprovesResponsetimes.2) 최적화 된 databasequerieseiesecessarycolumnsingpeedsupedsupeveval.

PHP 이메일 보안 : 이메일 보내기 모범 사례PHP 이메일 보안 : 이메일 보내기 모범 사례May 08, 2025 am 12:16 AM

theBestPracticesForendingEmailsSecurelyPinphPinclude : 1) usingecureconfigurations와 whithsmtpandstarttlSencryption, 2) 검증 및 inputSpreverventInseMeStacks, 3) 암호화에 대한 암호화와 비도시를 확인합니다

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는