Redbean 소개

Jennifer Aniston
Jennifer Aniston원래의
2025-02-23 08:27:09854검색

Introduction to Redbean

코어 포인트

RedBeanphp는 기본 데이터베이스 스키마를 동적으로 생성하고 수정할 수있는 ORM (Object Relational Mapper)으로 프로토 타이핑 및 개발 속도를 높이는 데 이상적입니다.

RedBeanPHP를 사용하면 객체 (또는 "bean")를 만들어 데이터베이스에 저장할 수 있으며 해당 테이블이 없어도 패턴을 자동으로 조정합니다.
    redbeanphp는 일대일, 일대일 및 다수의 관계를 포함하여 "소유"관련 객체의 개념을 통해 객체 간의 관계를 지원합니다.
  • RedBeanphp의 "스트리밍 모드"를 사용하면 객체가 변경 될 때 데이터베이스 스키마를 자동으로 조정할 수 있지만 성능 및 보안 향상을 위해 프로덕션에서 "Frozen Mode"로 전환하는 것이 좋습니다.
  • RedBeanPHP는 프로토 타이핑 및 빠른 반복을위한 훌륭한 도구이지만 열 데이터 유형, 외래 키, 관계 및 인덱스 확인과 같은 생산 환경에서 사용될 때는주의가 필요합니다.
  • Redbeanphp 소개
  • RAD (Rapid Application Development) 및 프로토 타이핑에는 신속하게 시작하는 데 도움이되는 많은 도구가 있습니다. 빠른 시작부터 미니 프레임 워크, 작곡가와 같은 빌드 도구에서 1 번 클릭 설치 자, 물론 ORM에 이르기까지 개발 속도를 높이는 방법에는 여러 가지가 있습니다. 우리는 프로토 타이핑에 완벽한 독특한 ORM 인 Redbeanphp에 중점을 둘 것입니다.
  • Redbeanphp의 초보자
  • redbeanphp는 ORM (Object Relational Mapper)이지만 ORM 이상입니다. 기본 데이터베이스 스키마를 동적으로 생성하고 수정할 수 있습니다. 전통적으로 ORM을 사전 계획된 기존 데이터베이스 스키마의 래퍼로 사용합니다. 이것은 대부분의 프로젝트에서도 괜찮지 만, 당신이 프로토 타이핑을 할 때 (또는 그것을하는 동안 생각) 배경에서 당신을 위해 그것을 할 때 더 속도가 높아질 수 있습니다.
  • redbeanphp로 객체 (또는 bean)를 만들 때 스키마는 데이터베이스에 저장하는 한 자동으로 조정됩니다. 해당 테이블이없는 객체를 저장하려고해도 적용됩니다!
설치

RedBeanPHP를 설치하는 가장 쉬운 방법은 올인원 패키지를 다운로드하는 것입니다. 그런 다음 단일 파일을 소개하면 입니다. 작곡가를 통해 설치할 수 있습니다. 도서관 저자는이 방법을 권장하지 않습니다. 자세한 내용은 설치 페이지를 참조하십시오.

배포 Bean

redbeanphp를 사용하는 첫 번째 단계는 콩을 "배포"하는 것입니다. 기본적으로 객체입니다. 이 기사의 나머지 부분에서는 "Bean"과 객체를 서로 바꿔서 사용합니다.

분포는 상단 Redbean 클래스 "r"의 정적 메소드에 의해 수행되며, 이는 유형을 매개 변수로 취합니다. 예 :

이렇게하면 속성을 할당 할 수있는 빈 사용자 객체가 생성됩니다. 필요한 숫자를 두 번째 매개 변수로 추가하여 여러 콩을 동시에 배포 할 수도 있습니다.

이 단계에서는 데이터베이스에 저장하려고하는 한 테이블이 데이터베이스에 존재하는지 여부는 중요하지 않습니다.

시도해 봅시다. 데이터베이스에 쓰는 데 사용되는 정적 메소드

의 사용에주의하십시오. store 대부분의 ORM에서는 사용자를 저장하기위한 테이블을 만들지 않은 경우 실패합니다. 그러나 Redbeanphp를 사용하면 테이블을 만들기 때문에 성공할 것입니다. 이 단계에서 데이터베이스를 보면 다음과 같은 테이블이 표시됩니다.

명명 규칙은 필요에 따라 매우 엄격합니다.
<code class="language-php">$user = R::dispense('user');</code>
이제 반복하는 동안 패턴이 어떻게 변하는 지 보자. 사용자 레코드에는 비밀번호 필드가 필요할 수 있지만 제작을 잊었습니다.

이렇게하면 :

이번에는 RedBeanphp는 사용자를 저장하는 방법을 알고 있지만 데이터베이스 테이블은 새 필드를 수용 할 수 없습니다. 괜찮아요 - 그것은 단지 하나를 추가합니다. 당신의 성능은 다음과 같이 보입니다 :
<code class="language-php">$users = R::dispense('user', 10);</code>
.

(다음 내용은 원본 텍스트와 유사하지만 문장 구조 및 단어 조정이 이루어졌으며 이미지 위치와 형식은 변경되지 않음)

필드 데이터 유형 RedBeanphp는 귀하가 제공 한 정보를 기반으로 필드의 데이터 유형을 추측하려고합니다. 그렇다면 :

당신은 나이 필드가 Tinyint로 만들어 졌다는 것을 알게 될 것입니다.

필드 유형이 나중에 불충분 한 경우 RedBeanphp는 동적으로 변경됩니다. 이제 3000을 AGE에 할당하려고하면 열이 int로 변경됩니다. 이름을 "30"으로 철자하면 Varchar로 변경됩니다. Varchar 필드를 255 자 이상으로 설정하면 텍스트 필드 등이됩니다.

<code class="language-php">$user->name = 'Joe Bloggs';
$user->email = 'joe.bloggs@example.com';
$id = R::store($user);
print $id;</code>
bean을 찾으십시오 당신은

메소드를 사용하여 기본 키에 의해 특정 객체를로드 할 수 있습니다 :

.
<code>user
----

id      int(11) UN PK AI
name    varchar(255)
email   varchar(255)</code>
당신은

메소드를 사용하여 여러 객체를 한 번에로드 할 수 있습니다 (기본 키를 누릅니다) : 이것은 콩 배열을 반환합니다. SQL을 사용하여 콩을 찾을 수도 있습니다.

메소드의 두 번째 매개 변수는 기본적으로 WHERE 키워드 자체를 제외하고 WHER 절에서 시작하는 SQL입니다. 예를 들어, 20 세 미만의 사용자를 찾으려면 :

우리는 매개 변수를 바인딩하고 있으므로 세 번째 매개 변수는 배열입니다. 이렇게하면 ID를 키로 사용하여 콩 배열을 반환합니다.

:

와 같은 SQL에 더 많은 조항을 추가 할 수 있습니다.
<code class="language-php">$user->password = 'secret';
R::store($user);</code>
카운트 당신은

메소드를 사용하여 레코드 수를 찾을 수 있습니다.

삭제 단일 콩을 삭제하려면

: 를 사용하십시오

특정 유형의 여러 콩을 삭제하려면

: 를 사용하십시오.

특정 유형의 모든 콩을 삭제하려면 load : 를 사용하십시오.

또는 모든 것을 삭제하려면 - 프로토 타이핑시 유용 할 수 있습니다.
<code>user
----

id          int(11) UN PK AI
name        varchar(255)
email       varchar(255)
password    varchar(255)</code>

관계 다른 orm과 마찬가지로 객체 간의 관계가 지원됩니다. batch 일대일 관계는 "소유"관련 객체를 참조 할 개념을 사용합니다. 예를 들어, 주문에 사용자가 하나만있는 경우 사용자를 "소유"라고합니다. 특정 변수 이름을 사용하면 다음과 같이이 관계를 만들 수 있습니다.

여기서 핵심 요소는 속성

입니다. 데이터베이스를 지금 확인하면 RedBeanphp가 해당 외래 키와 함께 주문 테이블에 필드를 추가했음을 알 수 있습니다.
<code class="language-php">$user = R::dispense('user');</code>
주문을 "소유"하는 사용자는 예를 들어 다음과 같이 단순히 속성으로 액세스 할 수 있습니다.

다수의 관계를 보여 주려면 몇 가지 문자를 만들어 봅시다 : ownOrders user_id 역할은 개별 사용자가 아닙니다. 따라서 처음 두 역할을 사용자에게 할당하고 그렇게 할 때 데이터베이스에서 관계를 설정하려면 다음을 수행 할 수 있습니다.

이번에는이 관계를 다수의 관계로 정의하는

라는 새 테이블을 찾아야합니다.

당신은 속성을 읽음으로써 사용자에게 속한 역할을 얻을 수 있습니다 :
<code class="language-php">$users = R::dispense('user', 10);</code>
.

이것은 처음 접근 할 때 역할의 로딩을 지연시킵니다.

관계는
<code class="language-php">$user->name = 'Joe Bloggs';
$user->email = 'joe.bloggs@example.com';
$id = R::store($user);
print $id;</code>
를 사용하여 관계에 속성을 추가, 링크 별 필터링, 긴급로드 등을 포함하여 더 많은 관계가 있습니다. 자세한 내용은 문서를 확인하십시오.

모델 당신은 콩 유형에 해당하기 위해 모델을 만들고 특정 명명 규칙을 따를 수 있습니다. 그런 다음 모델은 퓨즈를 사용하여 Bean에 연결됩니다.
<code>user
----

id      int(11) UN PK AI
name    varchar(255)
email   varchar(255)</code>
컨벤션은 간단합니다. 예를 들어, 사용자를위한 모델을 만들려면 다음을 수행하면됩니다.

모델을 정의한 후에는 Bean의 수명주기에서 다른 지점에서 호출되는 많은 방법을 구현할 수 있습니다. 다음 표는 CRUD 작업과 구현할 수있는 "후크"간의 매핑을 보여줍니다. role_user예를 들어

: update()를 구현하여 유효성 검사를 추가 할 수 있습니다.

당신은 물론 자신만의 방법을 만들고 getters를 사용자 정의 할 수 있습니다.
<code class="language-php">$user = R::dispense('user');</code>
쿼리 데이터베이스 당신은 이것과 같이 원래 SQL 쿼리를 실행할 수 있습니다 :

당신은 다음과 같이 다차원 행의 배열을 반환 할 수 있습니다 :

.

또한 파라미터 바인딩을 사용할 수 있습니다 :

당신은 다음과 같은 단일 열을 얻을 수 있습니다 :

당신은 또한 테이블의 두 열을 사용하여 연관 배열을 얻을 수 있습니다.

응용 프로그램을 배포하십시오 는 아마도 프로토 타이핑 (또는 적어도 개발)에 가장 적합하지만 특정 단계를 따를 수 있지만 RedBeanPHP가 생산 환경에서 계속 사용할 수없는 이유는 없습니다.
<code class="language-php">$users = R::dispense('user', 10);</code>
Redbeanphp 동적 업데이트 모드의 메커니즘을 "스트리밍 모드"라고하지만 이는 생산 환경에 적합하지 않으며 상당한 성능 오버 헤드가 있습니다. 그러나 "Freezing"it :

로 꺼질 수 있습니다.

생산에 들어갈 때는 다음 단계를 따라야합니다.
<code class="language-php">$user->name = 'Joe Bloggs';
$user->email = 'joe.bloggs@example.com';
$id = R::store($user);
print $id;</code>
열 데이터 유형을 확인하십시오 외국 열쇠와 관계를 확인하십시오 인덱스 확인 -RedbeanPHP는 몇 가지 인덱스를 생성하고 필요에 따라 수정합니다

<code>user
----

id      int(11) UN PK AI
name    varchar(255)
email   varchar(255)</code>
요약 이 기사에서는 기본 패턴을 먼저 구축하지 않고도 도메인 모델을 처리 할 수 ​​있도록 개발 프로세스를 시작하는 편리한 방법 인 RedBeanphp를 소개했습니다. 생산 환경에 적합한 지 여부는 여전히 남아 있지만 프로토 타이핑 및 빠른 반복을위한 훌륭한 가제트입니다. 많이 다루지 않으므로 문서를 확인하십시오.

RedBeanphp faq

Redbeanphp의 주요 기능은 무엇입니까?

RedBeanphp는 데이터베이스 상호 작용을 단순화하도록 설계된 다양한 기능을 제공하는 간단하고 가벼운 객체 관계 매핑 (ORM) 도구입니다. "제로 구성"접근 방식으로 알려져 있으므로 최소한의 설정 및 구성 만 필요합니다. 생성 한 객체를 기반으로 데이터베이스 스키마를 자동으로 빌드하고 객체가 변경 될 때 필요에 따라 스키마를 조정할 수 있습니다. RedBeanphp는 스트리밍 모드 및 동결 모드를 지원하므로 개발 환경과 생산 환경간에 쉽게 전환 할 수 있습니다. 여기에는 내장 트리 구조가 포함되어 있으며 Bean Canning 및 분배를 지원하여 객체의 손쉬운 저장 및 검색을 지원합니다.
<code class="language-php">$user->password = 'secret';
R::store($user);</code>
redbeanphp는 다른 ORM 도구와 어떻게 비교됩니까?

다른 ORM 도구와 비교할 때 Redbeanphp는 단순성과 사용 편의성으로 눈에 띄는 것입니다. 구성 파일, SQL 또는 모델 클래스가 필요하지 않습니다. 이것은 완전한 기능을 갖춘 ORM이 중복되는 초보자 나 프로젝트에 훌륭한 선택입니다. 그러나 여전히 자동 모드 수정 및 트리 구조와 같은 강력한 기능을 제공하여보다 복잡한 프로젝트에 충분합니다.

RedBeanphp를 설치하고 설정하는 방법은 무엇입니까?
<code>user
----

id          int(11) UN PK AI
name        varchar(255)
email       varchar(255)
password    varchar(255)</code>
RedBeanphp는 작곡가 (인기있는 PHP 의존성 관리 도구)를 통해 설치할 수 있습니다. 설치 후 스크립트에 RedBeanPHP 파일을 포함시키고 데이터베이스 연결을 설정하여 RedBeanPHP를 설정할 수 있습니다. RedBeanphp는 객체를 기반으로 테이블을 자동으로 작성하고 수정합니다.

RedBeanphp의 "스트리밍 모드"란 무엇입니까?

스트리밍 모드는 객체가 변경 될 때 데이터베이스 스키마를 자동으로 조정할 수있는 redbeanphp의 기능입니다. 객체를 변경할 때마다 데이터베이스를 수동으로 수정할 필요가 없기 때문에 개발 중에 많은 시간을 절약 할 수 있습니다. 그러나 성능 및 안전상의 이유로 생산 환경에서 "동결 모드"로 전환하는 것이 좋습니다.

redbeanphp는 객체 간의 관계를 어떻게 처리합니까?

RedBeanPHP는 일대일, 일대일 및 다수를 포함하여 객체 간의 여러 관계 유형을 지원합니다. 이러한 관계는 "Bean"(데이터베이스 테이블에서 행을 나타내는 간단한 개체)을 사용하여 처리됩니다. 콩을 서로 쉽게 연결하여 물체 간의 관계를 나타낼 수 있습니다.

기존 데이터베이스와 함께 redbeanphp를 사용할 수 있습니까?

예, RedBeanphp는 기존 데이터베이스와 함께 사용할 수 있습니다. 그러나 RedBeanphp의 자동 모드 수정 기능은 데이터베이스 구조를 변경할 수 있으므로 RedbeanPHP를 사용하기 전에 데이터베이스를 백업하는 것이 좋습니다.

RedBeanphp는 크고 복잡한 프로젝트에 적합합니까?

RedBeanPHP는 단순성과 사용 편의성으로 유명하지만 크고 복잡한 프로젝트에도 적합한 강력한 기능을 제공합니다. 자동 모드 수정, 다양한 관계 유형에 대한 지원 및 내장 트리 구조는 대규모 프로젝트에서 매우 유용합니다. 그러나 매우 크거나 복잡한 프로젝트의 경우보다 포괄적 인 ORM 도구가 더 적합 할 수 있습니다.

RedBeanphp는 보안을 어떻게 처리합니까?

RedBeanphp에는 보안을 향상시키기 위해 설계된 몇 가지 기능이 포함되어 있습니다. 전처리 명세서를 사용하여 SQL 주입 공격을 방지하고 예상치 못한 스키마 변경을 방지하기 위해 프로덕션에서 "동결 모드"를 사용하는 것이 좋습니다. 그러나 모든 도구와 마찬가지로 보안 모범 사례를 따르고 RedBeanPhp를 최신 상태로 유지하는 것이 중요합니다.

Redbeanphp에서 "Bean Can"은 무엇입니까?

Bean Canning은 RedBeanPHP의 기능으로 한 번에 설정된 전체 콩 (물체)을 저장하고 검색 할 수 있습니다. 이는 많은 양의 데이터를 처리하는 편리한 방법 일 수 있으며 데이터베이스 쿼리 수를 줄임으로써 성능을 향상시키는 데 도움이 될 수 있습니다.

작곡가없이 redbeanphp를 사용할 수 있습니까?

Composer는 RedBeanPhP를 설치하는 권장 방법이지만 스크립트에 직접 RedBeanPHP 파일을 다운로드하고 포함시킬 수도 있습니다. 그러나 Composer를 사용하면 RedBeanphp 및 프로젝트가 가질 수있는 기타 의존성을보다 쉽게 ​​관리하고 업데이트 할 수 있습니다.

위 내용은 Redbean 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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